PHP中使用localhost连接Mysql不成功的解决方法

实验环境:IDC机房   Centos6.7 X64   mysql5.5.32

问题描述:
把localhost改成127.0.0.1成功
把localhost改成127.0.0.1后竟然连接成功了,开始陷入思考困局:localhost失败127.0.0.1却成功?
ping localhost 地址是127.0.0.1没错
打开hosts加入
代码如下:
127.0.0.1 abao
使用abao当主机连接也正常,唯独就不认localhost。当主机连接也正常,唯独就不认localhost。

查阅的过的资料:
localhost连接方式不同导致
为了了解PHP连接数据库时,主机填写localhost与其它的区别阅读了大量资料,最后得知:
当主机填写为localhost时mysql会采用 unix domain socket连接
当主机填写为127.0.0.1时mysql会采用tcp方式连接
这是linux套接字网络的特性,win平台不会有这个问题

探索过的解决方法如下:
在my.cnf的[mysql]区段里添加
复制代码 代码如下:
protocol=tcp
保存重启MySQL,问题依然没有解决!

经过“不离”指导接着往下探索,
[root@abao~]# cat /etc/my.cnf | grep socket
socket  = /tmp/mysql.sock
socket  = /tmp/mysql.sock
# All interaction with mysqld must be made via Unix sockets or named pipes.

查看尝试修改修改php的配置文件php.ini
[root@abao~]# vim /etc/php.ini
搜索到mysql.default_socket =
修改成mysql.default_socket = /tmp/mysql.sock
[root@abao ~]# service httpd restart

至此问题终于解决了。

本文 暂无 评论

回复给

Top