解决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中指定.

解决问题

so:解决php连接mysql localhost不能连接,通过127.0.0.1等ip能链接的问题.

1.修改php.ini中配置,指定mysql.sock位置.
或者
2.修改my.cnf配置,改为  /tmp/mysql.sock