因為 MySQL 在 4.1 或以上的版本的認證加密方法更改了,那即是說在 php 程式內即使密碼正確也會連接失敗。解決方法為:

1. 重新編譯 PHP
將 –with-mysql 的選項改為 –with-mysqli=mysql_config_path/mysql_config,其中 mysq_config_path 是 MySQL 的安裝路徑下的 bin 目錄。

2. 修改 my.cnf
打開 /etc/my.cnf,在 "[mysqld]" 下加入一行

old-passwords

然後重啟 MySQL,這樣就會強逼 MySQL 使用舊加密認證。