实验环境: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
至此问题终于解决了。
本文 暂无 评论