使用Snow Leopard的Apache时出现mysqlnd错误

时间:2009-08-31 13:36:11

标签: mysql apache osx-snow-leopard

安装Snow Leopard后,连接到远程MySQL服务器时出现以下错误:

mysqlnd cannot connect to MySQL 4.1+ using old authentication

我没有得到的是为什么当我只启动MAMP的Apache时它与MAMP一起工作正常,但是我在Apache Leopard的构建中遇到了这个错误。是因为MAMP在本地有一些MySQL文件吗?当我尝试连接到远程服务器时,是否还需要在本地安装MySQL?任何关于如何解决这个问题的线索,而不是乱搞服务器?最好只有Apache - 不想安装任何我不需要的东西。

编辑:解决方案
原来PHP没有加载任何php.ini文件。 sudo cp /etc/php.ini.default /etc/php.ini做了伎俩。首先它只加载php-mysqlnd,现在也是php-mysql,一切都很好。

嗯,我错了,这没有解决任何问题。

3 个答案:

答案 0 :(得分:1)

运气好吗?我有同样的问题。我尝试使用pre 4.1和4.1之后的身份验证重置密码,但没有用。

EDIT ::

我的mysql服务器在配置文件中设置了旧密码选项,因此PASSWORD()和OLD_PASSWORD()的结果返回了相同的16位散列。

我在另一个使用新密码获取哈希值的mysql服务器上运行SELECT PASSWORD('mysecret'),然后运行SET PASSWORD FOR'myuser'@'%'='* THEHASHFROMTHESELECTSTATEMENT';。

HTH

答案 1 :(得分:0)

尝试在MySQL-Server上重新设置用户pw。 这样,密码应以新格式存储。

但是,Snow Leopard附带的mysql-library可能会在不支持旧密码的情况下编译。

即使在实时服务器上也可以创建新的数据库用户,因此如果您不想更改现有用户帐户,可以使用新的用户帐户进行检查。

  

我没有得到的是为什么它正在发挥作用   当我刚开始时,MAMP很好   MAMP的Apache,但是我收到了这个错误   用Snow Leopard构建Apache。   是因为MAMP有一些MySQL   本地文件?我还需要吗?   我尝试在本地安装MySQL   连接到远程服务器?任何线索   至于如何解决这个问题   没有乱搞   服务器?最好只有Apache - 不要   我想安装任何我不需要的东西。

MAMP在他自己的版本中拥有自己存储的所有文件。 如果要连接到远程服务器,则不必运行本地MySQL服务器。你只需要为PHP安装mysql-libraries。

答案 2 :(得分:0)

你可以在你的mysql查询浏览器上做这些行

SET old_passwords = 0;
UPDATE mysql.user SET Password = PASSWORD('testpass') WHERE User = 'testuser' limit 1;
SELECT LENGTH(Password) FROM mysql.user WHERE User = 'testuser';
FLUSH PRIVILEGES;

注意:您的用户名和密码

之后它应该能够工作。我也解决了我的问题