问题
Warning: mysqli_connect(): (HY000/2002): No such file or directory
更新完php7.4 后,再访问wordpress后,出现了上述的错误(开启DEBUG)。
定位
- 先单独通过mysql 命令在本地测试确认mysql服务正常。
- 检查wp-config.php的配置,没有问题
- 检查php的mysql支持,通过phpinfo()确认mysql支持没问题
- 初步锁定在php访问mysql的这个过程。
mysql status
登录mysql 后,通过status命令产看mysql socket:
UNIX socket: /tmp/mysql.sock
php中mysql的配置
- 确认php.ini的配置文件路径:
# php --ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File: /etc/php.ini
- 通过phpinfo()页面来确认mysql的socket配置:
pdo_mysql.default_socket
mysqli.default_socket
解决
通过上面的过程,发现phpinfo页面和mysql实际的socket文件不一致,于是修改php.ini:
pdo_mysql.default_socket=/tmp/mysql.sock
mysqli.default_socket=/tmp/mysql.sock
或者修改my.cnf中相关:
[client]
socket=/tmp/mysql.sock
[mysqld]
socket=/tmp/mysql.sock