MySQL PHP 不兼容:解决神秘错误
通过 PHP 5.3.0 连接到远程 MySQL 数据库时,用户可能会遇到一个神秘的错误错误,导致连接失败。这些警告消息通常表明 OK 数据包的预期长度不匹配以及过时的身份验证机制。
经过调查,发现根本问题源于 MySQL 帐户的密码长度。如果密码长度为 16 个字符,则可能是旧密码哈希,与 PHP 5.3.0 使用的 mysqlnd 驱动程序不兼容。
要解决此问题,请使用以下命令重置受影响的 MySQL 帐户的密码:新的。这可以通过执行以下 SQL 语句来完成:
SET PASSWORD FOR 'username'@'hostmask' = PASSWORD('thepassword')
作为潜在的替代方案,检查 MySQL 服务器是否配置为默认使用或创建旧密码。这可以通过检查服务器设置来验证。此外,在有问题的服务器上运行以下查询将提供进一步的见解:
SELECT Length(`Password`), Substring(`Password`, 1, 1) FROM `mysql`.`user` WHERE `user`='username'
将“用户名”替换为 mysql_connect() 中使用的实际帐户名。返回的值将指示密码的长度和第一个字符,提供有关错误根本原因的更多信息。
以上是为什么我无法使用 PHP 5.3.0 连接到远程 MySQL 数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!