错误:mysqlnd 无法使用旧版身份验证连接到 MySQL 4.1
使用 PHP 5.3 和 MySQL 5.5 模式时,开发人员可能会遇到以下情况错误:
Database connection failed: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication.
此错误消息表示 MySQL 本机驱动程序 mysqlnd 由于 MySQL 4.1 或更早版本中使用的过时身份验证机制而无法建立安全连接。
解决问题
要解决此连接问题,请按照以下步骤操作:
删除或注释掉我的“old_passwords”设置.cnf:
修改 my.cnf 配置文件并找到包含 'old_passwords = 1' 的行。删除此行或在开头添加“#”字符将其注释掉。
重新启动 MySQL:
重新启动 MySQL 服务以应用 my.cnf 中所做的更改。此步骤确保 MySQL 使用新的密码格式。如果跳过,MySQL 将继续使用不安全的格式。
更新用户密码:
连接到数据库并执行以下查询来识别密码过时的用户:
SELECT user, Length(`Password`) FROM `mysql`.`user`;
此查询将显示具有旧密码哈希值(16 个字符)和新密码哈希值(41 个字符)的用户。
执行密码更新:
对于具有 16 个字符密码哈希的用户,请使用以下命令更新其密码:
UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';
将“用户名”替换为实际用户名和“密码” ' 使用所需的新密码。
刷新权限:
最后,执行以下命令以应用更新的密码:
FLUSH PRIVILEGES;
通过完成这些步骤,您可以解决旧版身份验证引起的连接问题,并使用 mysqlnd 与 MySQL 建立安全连接。
以上是如何修复'mysqlnd 无法使用旧版身份验证连接到 MySQL 4.1”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!