開発ボックスの PHP を最新バージョンの5.4.5
. この開発用マシンは、ホスティング会社からリースした共有サーバー上にあるリモートのMySQL サーバーに接続します。
単純な結果を使用してリモート MySQL サーバーに接続しようとするとmysql_connect('myserver.com', 'user', 'password')
、次のエラーが発生します。
警告: mysql_connect(): mysqlnd は古い安全でない認証を使用して MySQL 4.1+ に接続できません。管理ツールを使用して、コマンド SET PASSWORD = PASSWORD('your_existing_password') でパスワードをリセットしてください。これにより、新しい、より安全なハッシュ値が mysql.user に保存されます。このユーザーが PHP 5.2 以前で実行される他のスクリプトで使用されている場合は、2 行目の file.php の my.cnf ファイルから old-passwords フラグを削除する必要がある場合があります。
単純に、アドバイスに従って、次を実行するだけです:
SET PASSWORD = PASSWORD('my-password');
何も変わらないでしょう。実行時も同様
SET SESSION old_passwords=FALSE;
少し検索した後、この問題を解決するには、MySQL サーバーへの非常に深いアクセスが必要であることがわかりましたが、私にはありません。このクエリを実行しようとしています:
UPDATE mysql.user SET Password=PASSWORD('my-password')
WHERE User='my_user' AND Host='my-server';
FLUSH PRIVILEGES;
次のエラーが表示されます。
1142 - テーブル 'user' のユーザー 'u0112918'@'www10.aname.net' に対する UPDATE コマンドが拒否されました
会社に私に代わってクエリを実行してもらうという要求は、これまでのところ成功していません. 私の質問は、MySQL サーバーを使用せずに、クライアント側でこれを修正する方法があるかどうかです。