使用 MySQLi 通过旧身份验证连接到 MySQL 4.1
尝试使用 MySQLi 建立与 MySQL 数据库的连接时,您可能会遇到以下错误:
Connect Error (2000) mysqlnd cannot connect to MySQL 4.1+ using old authentication
此错误是由于在 4.1 之前的 MySQL 版本中使用过时的密码哈希方案而导致的。虽然较新版本允许使用旧密码,但可能会导致上述问题。
要解决此问题,请按照以下步骤操作:
检查服务器设置:
执行 SQL 查询 SHOW VARIABLES LIKE 'old_passwords';确定服务器是否默认使用旧密码方案 (old_passwords,Off)。
识别具有旧密码的帐户:
使用查询SELECT User`, `Host`, Length(`Password`) FROM mysql.user` 列出用户帐户及其密码长度。密码长度为 16 的帐户使用旧方案,而长度为 41 表示新密码。
更改旧帐户的密码:
使用语句 SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword'); 将帐户密码更新为旧密码。请记住将“用户”和“主机”替换为查询中的适当值。
刷新权限:
执行 FLUSH 权限;应用更改。
验证密码长度:
重新运行步骤 2 中的查询以确认密码长度现在为 41 .
通过实施这些步骤,您应该能够使用 MySQLi 成功连接到 MySQL 数据库,即使它使用旧密码方案。
以上是如何使用 MySQLi 连接到具有旧身份验证的 MySQL 4.1?的详细内容。更多信息请关注PHP中文网其他相关文章!