日志分类:代码细节

如何编译安装一个php模块

2012-04-20 13:45  |  分类:代码细节

不止一次需要这么做了。

如果你需要的扩展在yum/apt仓库中没有的话,那需要自己编译了。

1. 下载PHP5.2.9的源代码(根据你php的版本选择)
2. 编译模块

进入对应模块的源码目录,然后:phpize、configure、make

$tar zxvf tar z[......]

Read more

这又是一篇介绍Semi-sync的文章。

Semi-sync主库在一定时间内(可配置的超时时间),如果没有收到备库的响应,则会超时从而降级为普通的replication复制。如果超时发生,有时需要查清什么原因导致备库没有及时响应,一方面可以从备库的日志着手,另一方面,如果需要更细致的信息则需要从备库端的网络包查找原因。这里介绍如何分析一个Semi-sync备库响应主库的数据包。

概述:先使用tcpdump抓取正确(主要是src和dst都正确)的数据包;然后借助wireshark玻璃TCP/IP等层的头信息,仅保留发送的MySQL数据包;再分析MySQL Semi-sync Slave响应的协议。

1. tcpdump原始数据包

通过如下tcpdump抓取主机的网络包:

nohup tcpdump -n -nn -tttt -i bond0 -s 65535 'port 3306 and ((dst host master.host and src host slave.host and len < 100) or (dst host slave.host and src host master.host))' -w tcpdump.ret -C 50 &

参数简单说明:

-n 表示ip不要转换为主机名 -nn表示端口号,不要转为为服务名(例如3306会被转换为mysql) -tttt 打印出完成的格式化的时间戳 -C 50 表示抓取的结果放到文件中,文件大小不超过50MB
2. 使用wireshark找到对应的包

[......]

Read more

格式化输出SQL

2011-03-10 22:37  |  分类:MySQL,代码细节

SQL Format,Open Source,SQL Beautifier[......]

Read more

一个有趣的perl函数

2010-11-8 20:44  |  分类:Linux,代码细节

入职已经489天了,新鲜事很多,不过更多应该是无趣、枯燥的日常:装很多的数据库、反复的测试、写很多的脚本...... 不过,在这繁忙工作中,还是希望自己能够保持一份趣味。

下面这个perl函数就是帮你保持脚本有趣的一个办法。

在你的Perl脚本中下面的函数,并在脚本的第一行调用之。函数会[......]

Read more

MySQL打开的文件描述符限制

2010-10-21 23:19  |  分类:MySQL,代码细节

如果遇到如下错误:

Can't open file: '.\test\mytable.frm' (errno: 24)
shell> perror 24
OS error code 24: Too many open files

这就是MySQL的文件描述不够用了。先说解决办法,再说背后的原因吧。

1. 如何解决

第一步:设置OS参数(如果你有权限的话):

文件/etc/security/limits.conf新增如下行:

mysql soft nofile 65535
mysql hard nofile 65535

上面的配置,是OS限制各个用户能够打开的文件描述符限制(hard soft区别参看man ulimit),新增上面两行,表示mysql用户能够打开65535个文件描述符(可以使用lsof -u mysql|wc -l查看当前打开了多少个文件描述符)。

第二步:修改MySQL参数:
在MySQL配置文件my.cnf中新增下面的行

open_files_limit = 65535
innodb_open_files=65535

然后重启你的MySQL一般问题就解决了。

2. 背后的问题

[......]

Read more

PHP连接Oracle数据库

2010-09-25 23:10  |  分类:代码细节

一般大家不这么做。

不难,和连接MySQL差不多。php需要使用OCI8扩展来连接Oracle,可以使用phpinfo来查看你是否已经安装了该扩展。关于OCI8的详细使用可以直接参考php的Manual OCI8,本文仅做一个入门介绍。

1. 使用什么帐号连接
$ora_host = "172.19.*.259"; $ora_port="1521"; $ora_sid = "orasid"; $ora_username = "orauser"; $ora_password = "orapwd"; $charset = "UTF8"; ### zhs16gbk ###

[......]

Read more

Pages: Prev 1 2 3 Next