关于Can't connect to local MySQL server through socket '/tmp/mysql.sock' 的问题找不到mysql socket的问题,
首先是mysqld启动不了,
我通过vim /etc/my.cnf,修改了[mysqld]选项下面的socket的值
socket=/var/lib/mysql/mysql.sock
ok,mysqld可以启动了
接下来,是mysql启动不了,同样,vim /etc/my.cnf,添加了如下脚本:
[mysql]
socket=/var/lib/mysql/mysql.sock
然后,mysqladmin启动不了,还是一样,在[mysqladmin]下面socket值设置为同样的路径
ok,可以启动了
最后,用php连接的时候,又出现这个问题了
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
我首先想到的是,在/etc/php.ini修改mysql.default_socket的值,在这个文件中,关于mysql.default_socket的值的说明是这样的,
; Default socket name for local MySQL connects. If empty, uses the built-in MySQL defaults.
这个值一开始是空的,也就是说,如果我们不主动去修改的话,php将会使用内建在mysql中的默认值
于是,我修改了这个值,设置为:
mysql.default_socket=/var/lib/mysql/mysql.sock
然后我重新启动apache,结果无效;reboot系统,结果无效
,php就非得去连接/tmp/mysql.sock,可是我的系统里面就是没有这个路径下的这个文件,那我就给你链接一个,于是我做了下面的操作,
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
重新打开我的php页面,ok,这下能连接到数据库了。
本文转自linux博客51CTO博客,原文链接http://blog.51cto.com/yangzhiming/835285如需转载请自行联系原作者
yangzhimingg