解决php通过localhost不能连接mysql(Percona Server)数据库,通过127.0.0.1等ip能链接mysql数据库的问题.
问题产生
使用Percona Server官网的在线生成工具生成了my.cnf配置文件.做好左右配置启动ok之后,php无法通过localhost连接mysql数据库.
但是通过ip地址却可以连接.
mysql的localhost和127.0.0.1的区别
localhost走的是 unix sock
,127.0.0.1走的是 tcp
原因分析
产生localhost不能连接的问题是,php默认中使用的mysql unix sock使用的是 /tmp/mysql.sock
如果你修改了mysql的的sock的路径,那么需要在php.ini中指定.
如果你修改了mysql的的sock的路径,那么需要在php.ini中指定.
解决问题
so:解决php连接mysql localhost不能连接,通过127.0.0.1等ip能链接的问题.
1.修改php.ini中配置,指定mysql.sock位置.
或者
2.修改my.cnf配置,改为 /tmp/mysql.sock