导航

直接上解决方案:网上很多说要改php.ini的,但是我自己写的php连接MYSQL的代码没有问题,可以顺利连接并读取,说明php配置是没有问题的,应该是phpmyadmin的配置问题,最终在这里找到的答案:解决方法是将config.ini.php里面的host从localhost改为127.0.0.1

https://stackoverflow.com/questions/41881123/mysqli-real-connect-hy000-2002-no-such-file-or-directory

 

SQLSTATE[HY000] [2002] Connection refused

 如果使用Docker安装php-fpm,出现如上提示,原因是数据库配置中hostname填的是localhost,或者127.0.0.1,因为此处的localhost是指php-fpm的容器,而不是mysql所在的容器。所以是连不上的。只需要将这里的hostname改成mysql容器的名字,如果mysql未安装在docker容器中,则改为宿主主机的IP地址即可。
 

我的环境:CentOs7.5

找到mysql.sock文件的位置
$find / -name mysql.sock

修改php.ini加入如下内容:
pdo_mysql.default_socket=/var/lib/mysql/mysql.sock
mysql.default_socket=/var/lib/mysql/mysql.sock

 地址是刚才搜到的地址

改完后重启php-fpm