MySQL设置root密码后,PHP网页无法连接数据库。
2015-01-20 22:25
501 查看
URL: http://www.openphp.cn/index.php?module=article&id=132
root用户密码为空时,php网页能够打开;设置root密码后,网页无法连接数据库。
此问题仅在Windows操作系统中出现,Linux操作系统正常。
在更新到 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的扩展除外),问题就在这了。
root用户密码为空时,php网页能够打开;设置root密码后,网页无法连接数据库。
此问题仅在Windows操作系统中出现,Linux操作系统正常。
在更新到 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的扩展除外),问题就在这了。
相关文章推荐
- 无法连接mysql,请检查mysql是否已启动及用户密码是否设置正确
- 登录使用OPENSHIFT搭建的PHP+MYSQL应用,显示【连接数据库失败,数据库用户名或密码错误
- 设置mysql用户密码(5.6/5.7)、远程连接数据库、常用命令
- Windows版mysql启动之后设置密码,Navicat无法连接mysql问题
- 设置更改root密码(远程,本地)、连接mysql、mysql常用命令
- 为什么MySQL的root用户的密码为空可以成功连接,设置密码以后即出错
- Linux下设置更改root密码,连接mysql,mysql常用命令
- 设置mysql用户密码(5.6/5.7)、远程连接数据库、常用命令
- 13.1 设置更改root密码 - 13.2 连接mysql - 13.3 mysql常用命令
- php 5.3.3 无法连接 MySQL 数据库
- PHP框架入门——修改mysql的root密码,正确连接数据库
- 13.1 设置更改root密码;13.2 连接MySQL;13.3 MySQL常用命令
- mysql修改root密码以及设置数据库字符集
- linux学习第四十九篇:设置更改mysql的root密码,连接MySQL,MySQL常用命令
- php可以连接mysql python无法连接localhost数据库
- PHP 连接 Mysql 数据库时设置编码方式(引起乱码的原因之一)
- mysql设置root密码,并且允许远程连接
- MYSQL - php 使用 localhost 无法连接数据库
- WDCP打开网页时报错:无法连接mysql,请检查mysql是否已启动及用户密码是否配置正确
- Mac下新安装的MySQL无法登陆root用户(安装时没有设置密码)