2013-04-01 170 views
0

我試圖在命令行php腳本文件中使用MySQL連接。我有我在GUI模式下運行的其他文件,但在命令行模式下,它是給我下面的錯誤在mysqli_connect的時間:無法在CLI模式下連接MySQL DB(在GUI模式下連接)PHP

mysqlnd無法連接到MySQL 4.1+使用舊的不安全 認證。請使用管理工具使用命令SET PASSWORD = PASSWORD('your_existing_password')重置您的密碼 。這會在mysql.user中存儲一個新的,更多的安全散列值。如果該用戶在通過PHP 5.2執行其他 腳本中使用或更早,你可能需要從你的my.cnf文件刪除 舊密碼標誌

我明白,我可以更新自己的密碼。但由於某種原因,我無法使用新密碼更新舊密碼。所以我只需要在舊密碼的支持下連接mysql。

同樣,我提到相同的代碼在GUI模式下工作正常,但在同一臺服務器上沒有在CLI模式下工作。它是如何發生的。任何人有任何想法?

+0

不同的PHP SAPI,不同的php.ini設置執行你的PHP腳本。我懷疑CLI解釋器正在使用新的MySQL驅動程序,而Web版本不是。 –

回答

0

您可以檢查Web Server和Command Line PHP使用哪些PHP.ini文件嗎?對於Web服務器,只需使用phpinfo()創建一個頁面並檢查php.ini文件的位置。一旦你的Web服務器使用的php.ini文件的位置,那麼你可以在命令行中使用

php -c <Path of PHP.ini> <Your PHP Script>