2013-04-01 124 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>