修复由于不安全身份验证导致的 MySQL 连接错误
尝试建立数据库连接时,您可能会遇到以下错误:
Database connection failed: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password').
此问题是由于 PHP 和 MySQL 版本不匹配造成的。 MySQL 增强了安全措施,需要使用更安全的身份验证方法。
解决方案:
-
更新服务器配置:
- 在您的虚拟主机服务器(媒体圣殿)上,咨询您的主机将 MySQL 版本更新到 5.5.16 或更高版本(与您本地计算机上的版本匹配)。
-
禁用不安全身份验证:
- 找到“my.cnf”配置文件(例如“/etc/my.cnf”或“/opt/lampp/etc/my.cnf”)。
- 删除或注释掉“old_passwords = 1”行。
-
重新启动 MySQL:
-
重置密码:
- 使用管理工具(例如 MySQL Workbench 或 phpMyAdmin)连接到 MySQL 数据库。
- 运行查询“SELECT user, Length(Password) FROM mysql.user;”识别具有不安全密码的用户(16 个字符的哈希值)。
- 使用查询“UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username”更新每个具有不安全身份验证的用户的密码';"。
-
刷新权限:
- 执行查询“FLUSH PRIVILEGES;”传播密码更改。
其他注意事项:
- 如果您在 PHP 5.2 或更早版本上使用服务器端,您可能需要从“my.cnf”文件中删除“old-passwords”标志,以允许过时的身份验证方法。
- 确保 MySQL root 用户密码是安全的,如错误中所述消息。
以上是根据您的内容,以下是文章标题的一些选项,格式为问题:
**一般和重点错误消息:**
* **如何修复“mysqlnd 无法使用 MySQL 连接到 MySQL 4.1”的详细内容。更多信息请关注PHP中文网其他相关文章!