改用127.0.0.1可以連接,host改爲localhost時無法連接
首先查看用戶:
SELECT host,userassword FROM mysql.user WHERE user='root';
再查看權限:
show grants for root@localhost;
沒有問題。
localhost解析是否正常:
ping localhost
同樣正常。
用mysql的客戶端程序 mysql 連接:
mysql -h localhost -u root -p
提示沒有權限,在 /etc/my.cnf 中增加:
[client]
socket= /tmp/mysql.sock
可以連接,那麼php無法連接是否與此有關?在stackoverflow看到一些提示,說是127.0.0.1與localhost的不衕之處在于localhost會使用 UNIX domain socket 連接,幷受到 /etc/php.ini
中 mysql.default_socket
或 pdo_mysql.default_socket
的影響,於是在 /etc/php.ini
中配置:
[Pdo_mysql]
pdo_mysql.default_socket=/tmp/mysql.sock
OK.