Nginx 是一个很不错的高性能Web和反向代理服务器,官方数据可以支持高达50000个并发连接数的响应,支持epoll和kqueue,可以作为负载均衡器,邮件代理服务器并且安装配置比较简单,Bugs非常少,可以平滑对其进行升级.
首先下载 nginx-tomcat.tar.gz
星期五, 七月 30th, 2010 Posted in nginx, Tomcat | No Comments »
Nginx 是一个很不错的高性能Web和反向代理服务器,官方数据可以支持高达50000个并发连接数的响应,支持epoll和kqueue,可以作为负载均衡器,邮件代理服务器并且安装配置比较简单,Bugs非常少,可以平滑对其进行升级.
首先下载 nginx-tomcat.tar.gz
星期五, 七月 30th, 2010 Posted in mysql | No Comments »
Innodb是一个多版本的存储引擎,它可以把旧的行信息存到表空间中。这些旧的行信息存储到Innodb称为的回滚段的表空间中。
Innodb为实现多版本,Innodb在每一行添加了三个列。一个6字节的DB_TRX_ID字段用来表示事务的Insert或是Update操作,对 于Delete操作实际上也并不在直接删除,只是用一个Bit位去标识行被删除。另外,每行包括7字节的DB_ROLL_PTR字段,称为回滚指针 (roll pointer)。这个回滚指针指向回滚段(undo segment)中的回滚记录。如果行被更新,那么回滚段中记录的信息足以使update操作加到update操作之间。最后还有一个6字节的 DB_ROW_ID字段,该字段包含新行的Row Id,这个字段只在Insert操作时单纯的增加。DB_ROW_ID是需要一个互诉锁的才能产生。Innodb产生的clustered index包括Row ID.从另一方面来说,除了Clustered Index索引外,其它的索引不会包含Row Id.
星期五, 七月 30th, 2010 Posted in PHP开发 | No Comments »
Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用。
星期五, 七月 30th, 2010 Posted in PHP开发 | No Comments »
总有网友问我,如何通过php调用MySQL的存储过程同时取得返回的结果集呢?确实,MySQL的存储过程大大方便了编程也提高了效率。但是,对于那些还在用php 4 的同学们来说可就麻烦了,因为php 4只能调用存储过程,但却无法直接取得返回结果集;不过,用php 5的mysqli函数就可以做到了。首先,重新编译php 5,增加对mysqli的支持,或者直接下载mysqli的扩展模块,这里不再细说。直接举个例子吧:
星期五, 七月 30th, 2010 Posted in PHP开发 | No Comments »
近日升级php 4.3.10 到 4.4.6,遭遇到一个奇怪的问题。描述如下:
Linux Redhat AS4, Apache 1.3.37, PHP 4.4.6, Smarty 2.6.3 环境中,只要在调用 Smarty 的 display() 函数之前有任何诸如
echo/print/print_r 等输出,那么整个输出结果就变成空白页面。一开始以为是版本升级导致的问题,遂换成旧版本,问题依旧。也怀疑到是否因为 SQUID 缓存引起的,于是直接走 Apache 端口,还是那样。把 PHP 的 error_reporting 改成 E_ALL,重启,没看到任何报错,但是问题依旧如此…这时已经有点烦躁了。 以前也从来没碰到过如此BT之问题,百思不得其解,干脆重启机器吧,可还是那样…
星期二, 七月 27th, 2010 Posted in mysql | No Comments »
一、没有正确赋权
有时候真的非常抓狂,明明赋给某用户相关的权限了,他死活就是不能从远程登录。哈哈,别急,这里有几个常犯的小错误。第一个可能,没有用root帐号登录 MySQL。MySQL安装完之后会产生空用户,而且这个用户是默认用户。如果使用不带参数的mysql命令直接登录本地服务器,往往当前用户就是毫无权限的空用户(不信可以用select user()看一下)。这时候虽然grant命令会返回成功的提示,但是实际上新用户屁权限都没得到。第二个可能,你用来赋权的用户,虽然有相关权限,但是它的帐号信息不在内存里。这种情况多发生于用source读取sql后。此时只要执行flush privileges就好啦!第三个可能,grant语句里面的数据库名称写错了。MySQL有个非常龌龊的恶习,它不会检查grant里面的数据库是否真的存在。有时候手抖写错了一个字母,查了半天才能查出来。