EasyPHP升级后,MySQL密码被拒绝

时间:2014-09-29 09:46:01

标签: php mysql database phpmyadmin

我有一个网站已经启动并运行多年(现在差不多10个),并由提供MySQL数据库的第三方托管(以及我无法更改的连接ID和密码)。

为了管理更改,我使用了旧版本的EasyPHP (Apache 1.3.27 - MySQL 4.0.15 - PHP 4.3.3),配置为与在线服务器版本完全匹配。

在开发环境中,MySQL用户设置为User = ID由托管公司提供,Host = %, Password = pwd由托管公司ALL PRIVILEGES and Grant = Yes提供。

经过多年的预期,托管公司宣布迁移到更新版本的PHP和MySQL,为了做好准备,我安装了最新版本的EasyPHP (Apache 2.4.7 - MySQL 5.6.15 - PHP 5.4.24)

在这个新版本中,我使用PhpMyAdmin创建了MySQL用户(与上面相同的设置,没有错误),并设置了与以前相同的VirtualHosts,但我的脚本都没有能够连接到数据库,返回经典错误:

Warning: mysql_connect(): Access denied for user: 'username'@'localhost' (Using password: YES)
  • 注意:在mysql_connect()函数中,使用了正确的主机名,而不是消息错误中提到的'localhost'

其他PHP代码正确执行,但没有数据库连接则不是很有用。 我试图删除密码,并可以连接。同样使用root@localhost and no password,建立连接。 但这些都不是“真实”的选择。事情,所以我真的应该能够连接完整的连接参数来模拟在线服务器的设置。

为了完整起见,我还安装并设置了UwAmp(Apache 2.2.22 - MySQL 5.6.11 - PHP 5.3.25),并得到了相同的结果。

Windows操作系统(和/或主机'文件)也不参与,因为旧版EasyPHP在同一个盒子上正确运行。

最后,我通过PhpMyAdmin删除了用户,并尝试通过PHP mysql_query创建它:

<德尔> CREATE USER 'userID'@'hostname' IDENTIFIED BY PASSWORD 'password';

抛出错误:

<德尔> (1827) The password hash doesn't have the expected format. Check if the correct password algorithm is being used with the PASSWORD() function.

编辑:错误的查询,以及在查询中跳过PASSWORD字符串时创建的用户。唉,这个用户仍然无法连接数据库。为什么?

我还使用了"SET old_passwords=0""....=1"来玩,总是出现同样的错误。

是否有任何关于导致错误的开发服务器设置的想法,以使其正常工作?

1 个答案:

答案 0 :(得分:0)

不应使用PASSWORD子句:

CREATE USER 'userID'@'hostname' IDENTIFIED BY 'password';

检查Manual