mysqli_connect(): (HY000/2002): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
先给出结论
此bug尚未找出解决方案,但我已使用了曲线救国的方案来救命
背景
- 用了阿里云市场中提供的镜像;
- 用
localhost
为host
的话,php连接mysql时就会走socket
的方式而非TCP/IP
的方式。 - 镜像中提供的可视化运维系统(PHP),似乎指定了mysql socket的路径为:
/tmp/mysql.sock
;因此,若我改mysql
的配置socket
的话,则该可视化运维系统不可用; - 该可视化运维系统使用了
zend
的工具进行加密,无法修改;
调试过程
因此只能改自己PHP
的配置mysqli.default_socket
;
备注:经测试,用php_mysql
扩展的话,mysql.default_socket
修改成功,并能成功连接。
而修改mysqli.default_socket
的话,依然报上述的错,也就是设置无效。
利用php