安装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,一切都很好。
答案 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;
注意:您的用户名和密码
之后它应该能够工作。我也解决了我的问题