“MySQL Server Error(1251)“的解决方法_MySQL
程序员文章站
2022-06-05 20:10:13
...
bitsCN.com
虽然 MySQL 4.1.7 已经发布并成为官方推荐版本,但是 4.0.x 系列并没有停止更新和 bug 修复,其实现在服务器上的 MySQL 大多是 3.x 版本的,呵呵。
在更新到 4.1.17 版本的 MySQL 后,发现需要使用 MySQLi 扩展方能正常使用数据库,否则会出现 1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client 的提示,这个很纳闷,我没有研究具体的问题,只是切换到 MySQLi 扩展,其实在给 root 加上密码前还是可以使用 MySQL 扩展的,可是给 root 加上密码后就出现了上述客户端版本太低的提示。
目前已知解决方法:
先用root登录MYSQL服务器,执行
mysql>set password for user1@"localhost"=old_password(yourPassword);
原因是因为你使用的mysql服务器版本中使用了新的密码验证机制,这需要客户端的版本要在4.0以上,原来的密码函数被改为old_password();,这样使用password()生成的密码在旧的版本上的客户端就不好使了,而PHP中的MYSQL客户端都是3.23的(当然,mysqli的扩展除外),问题就在这了。
更新信息:ChangeLog
下载:http://dev.mysql.com/downloads/mysql/4.0.html
本文链接:
php.cn/index.php?module=article&id=132" target=_blank>http://www.openphp.cn/index.php?module=article&id=132
bitsCN.com
在更新到 4.1.17 版本的 MySQL 后,发现需要使用 MySQLi 扩展方能正常使用数据库,否则会出现 1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client 的提示,这个很纳闷,我没有研究具体的问题,只是切换到 MySQLi 扩展,其实在给 root 加上密码前还是可以使用 MySQL 扩展的,可是给 root 加上密码后就出现了上述客户端版本太低的提示。
目前已知解决方法:
先用root登录MYSQL服务器,执行
mysql>set password for user1@"localhost"=old_password(yourPassword);
原因是因为你使用的mysql服务器版本中使用了新的密码验证机制,这需要客户端的版本要在4.0以上,原来的密码函数被改为old_password();,这样使用password()生成的密码在旧的版本上的客户端就不好使了,而PHP中的MYSQL客户端都是3.23的(当然,mysqli的扩展除外),问题就在这了。
更新信息:ChangeLog
下载:http://dev.mysql.com/downloads/mysql/4.0.html
本文链接:
php.cn/index.php?module=article&id=132" target=_blank>http://www.openphp.cn/index.php?module=article&id=132
bitsCN.com
下一篇: php数组转Json的例子
推荐阅读
-
MySQL常见内存不足启动失败的完美解决方法
-
win10下MySQL 8.0登录Access denied for user‘root’@‘localhost’ (using password: YES)问题的解决方法
-
Windows 8.1下MySQL5.7 忘记root 密码的解决方法
-
mysql数据库无法被其他ip访问的解决方法
-
Mysql启动报ERROR:2002的分析与解决
-
web.py在SAE中的Session问题解决方法(使用mysql存储)
-
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
-
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
-
mysql报错1033 Incorrect information in file: ‘xxx.frm’问题的解决方法
-
mysql8.0.11客户端无法登陆的解决方法