1

Snow Leopardをインストールした後、リモートMySQLサーバーに接続すると次のエラーが発生しました。

mysqlnd cannot connect to MySQL 4.1+ using old authentication

私が得られないのは、MAMPのApacheを起動しただけで、MAMPで正常に動作する理由ですが、ApacheでのSnowLeopardのビルドでこのエラーが発生します。MAMPにいくつかのMySQLファイルがローカルにあるためですか?リモートサーバーに接続しようとしたときに、MySQLをローカルにインストールする必要がありますか?サーバーをいじることなく私の側でこれを修正する方法についての手がかりはありますか?できればApacheのみ—不要なものはインストールしないでください。

編集:解決策
PHPがphp.iniファイルをロードしていなかったことが判明しました。Asudo cp /etc/php.ini.default /etc/php.iniはトリックをしました。最初はphp-mysqlndのみをロードしていましたが、現在はphp-mysqlもロードしており、すべて問題ありません。

うーん、私は間違っていました、これは何も解決しません。

4

3 に答える 3

1

これで運がいいですか?私はまったく同じ問題を抱えています。4.1以前と4.1以降の両方の認証を使用してパスワードをリセットしようとしましたが、役に立ちませんでした。

編集::

私のmysqlサーバーでは、構成ファイルに古いパスワードの使用オプションが設定されていたため、PASSWORD()とOLD_PASSWORD()の結果は同じ16桁のハッシュを返しました。

新しいパスワードを使用してハッシュを取得する別のmysqlサーバーでSELECTPASSWORD('mysecret')を実行してから、SET PASSWORD FOR'myuser' @'%'='*THEHASHFROMTHESELECTSTATEMENT';を実行しました。

hth

于 2009-09-16T19:11:22.733 に答える
0

MySQLサーバーでuser-pwを再設定してみてください。このように、パスワードは新しい形式で保存する必要があります。

ただし、Snow Leopardに同梱されているmysql-libraryは、古いパスワードをサポートせずにコンパイルされる場合があります。

ライブサーバーでも、新しいdb-userを作成しても問題ないはずなので、既存のユーザーアカウントを変更したくない場合は、新しいユーザーアカウントで確認できます。

私が得られないのは、MAMPのApacheを起動しただけで、MAMPで正常に動作する理由ですが、ApacheでのSnowLeopardのビルドでこのエラーが発生します。MAMPにいくつかのMySQLファイルがローカルにあるためですか?リモートサーバーに接続しようとしたときに、MySQLをローカルにインストールする必要がありますか?サーバーをいじることなく私の側でこれを修正する方法についての手がかりはありますか?できればApacheのみ—不要なものはインストールしないでください。

MAMPには、すべてのファイルが独自のバージョンで独自に保存されています。リモートサーバーに接続する場合は、ローカルのMySQL-Serverを実行する必要はありません。PHP用のmysql-librariesをインストールする必要があります。

于 2009-09-01T08:41:38.057 に答える
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;

注:ユーザー名とパスワード

その後、それは動作するはずです。私も解決しました

于 2011-05-27T07:26:18.783 に答える