php 连接mysql的问题

  当前我的情况是安装上mysql配置了my.cnf中的socket,并且在指定位置也生成了 mysql.sock 的sock文件,此时我通过php.ini来设置php连接mysql.sock的文件,但是不管怎么修改,从php.info中看到对应的mysql.sock的文件路径都是同一个位置,我设置的属性也不生效。

 

vim /etc/php.ini

mysql.default_socket = /data/svr/mysql/mysql_3306/tmp/mysql.sock

pdo_mysql.default_socket= /data/svr/mysql/mysql_3306/tmp/mysql.sock

mysqli.default_socket = /data/svr/mysql/mysql_3306/tmp/mysql.sock

  

nm,怎么还是连接这里

 

nm,有完没完了

 

这个也添乱!!

 

 

Google了数篇文章,通过自己的消化理解,大致上了解了错误的原因:当初编译安装MySQL和PHP的时候,没有通过编译参数去指定MySQL的Socket路径,于是程序就把其Socket路径的默认值/bar/mysql.sock给编译进去了。之后实际运行的时候,通过配置文件更改了Socket路径到/foo/mysql.sock,因为所有配置文件的所有相关小节我都设置成一致的新路径,所以MySQL自己的命令行客户端、PHP的mysql扩展、PHP的mysqli扩展均能正常工作,都按照指定的新的路径去连接Socket。但是偏偏PDO抽风,根本不理会设置值,只是一门心思的按照编译中指定的值去连接,所以导致出错(猜测或者不是因为PDO执着,而是PHP本身的关系,因为我pdo_mysql是编译进PHP主程序的,而不是通过so扩展。phpinfo中的MYSQL_SOCKET值应该就是编译的默认值)。

据我消化理解来的知识,似乎此问题没有办法通过配置文件解决,MYSQL_SOCKET根本无从修改,估计是编译定死了,变成PHP或者PDO的一个静态常量了。唯一的解决途径就是重新编译PDO(如果它是so扩展)或者重新编译整个PHP(就是我这种,PDO是被编译进PHP的情况)。

于是,我的解决办法是,妥协!我把所有设置从/foo/mysql.sock改回成编译默认值的/bar/mysql.sock,PDO终于不报错了,可以正常连接了。


 

以下是我的问题所在

 

'./configure' '--prefix=/opt/svr/php5.3.10'  \
'--with-config-file-path=/opt/svr/php5.2.1/etc'  \
'--with-mysql=/data/svr/mysql/mysql_3306'  \
 '--with-mysqli=/data/svr/mysql/mysql_3306/bin/mysql_config' \
 '--with-pdo-mysql=/data/svr/mysql/mysql_3306' \
 '--with-zlib' '--enable-xml' \
 '--disable-rpath'  \
'--enable-bcmath'  \ 
'--enable-shmop'  \
'--enable-sysvsem'  \
'--with-curl' \
 '--enable-fpm'  \
'--with-mcrypt' \
 '--with-gd' \
 '--with-openssl-dir=/usr/lib64/openssl/' \
 '--with-mhash'  \
'--enable-socket' \
 '--with-ldap' \
 '--with-ldap-sasl'  \
'--with-xmlrpc' \
 '--enable-zip' \
 '--enable-soap' \
 '--enable-pdo'  \
'--with-pdo-mysql=/usr'  \
'--with-jpeg-dir=/usr/lib' \
 '--with-png-dir=/usr/lib' \
 '--with-iconv=/usr/local/include/'  \
'--enable-fastcgi'

命名我的mysql是安装在
/data/svr/mysql/mysql_3306', 最后我却把 --with-pdo-mysql配置在了/usr 下。所以最后你就算跳过编译错误这段,继续make make install 并且成功了,php在使用pdo_mysql
的时候肯定会去/usr/这个路径下找mysql ,所以就找不到了


 

posted @ 2016-08-09 10:22  wawahan  阅读(419)  评论(0编辑  收藏  举报