0

我正在尝试在命令行 php 脚本文件中连接 MySQL。我有另一个文件,我在 GUI 模式下运行,但在命令行模式下,它在 mysqli_connect 时给我以下错误:

mysqlnd 无法使用旧的不安全身份验证连接到 MySQL 4.1+。请使用管理工具通过命令 SET PASSWORD = PASSWORD('your_existing_password') 重置密码。这将在 mysql.user 中存储一个新的、更安全的哈希值。如果此用户在 PHP 5.2 或更早版本执行的其他脚本中使用,您可能需要从 my.cnf 文件中删除 old-passwords 标志

我了解我可以更新我的密码。但由于某种原因,我无法用新密码更新旧密码。所以我只需要在旧密码的支持下连接mysql。

同样,我提到相同的代码在 GUI 模式下工作正常,但在同一台服务器上的 CLI 模式下却不行。它是如何发生的。有人有什么想法吗?

4

1 回答 1

0

你能检查 Web 服务器和命令行 PHP 使用了哪些 PHP.ini 文件吗?对于 Web 服务器,只需使用 phpinfo() 创建一个页面并检查 php.ini 文件的位置。一旦您获得 Web 服务器使用的 PHP.ini 文件位置,您就可以使用命令行从命令行执行您的 PHP 脚本

php -c <Path of PHP.ini> <Your PHP Script>
于 2013-04-01T09:46:55.837 回答