サーバーのローカルボックスでもPHP5.3.xを実行していて、そこでこれらの問題が発生していなかったため、XAMPPのインストールでこれが問題になった理由はよくわかりません。ただし、これは「古いパスワード」暗号化モードで実行されているmySQLサーバーと関係があります。新しいバージョンのPHPはこれらの種類の接続を許可しないため、新しいパスワード暗号化を使用するようにmySQLサーバーを更新する必要があります。 mySQLサーバーを制御できると仮定した場合の手順は次のとおりです。そうしないと、それは私の知識の範囲外になります。
-
my.cnf
というmysqlサーバーの構成ファイルを見つけます 。私は/etc/my.cnf
で私のものを見つけました 。sudo nano /etc/my.cnf
で編集できます -
old_passwords=1
という行を探します それをold_passwords=0
に変更します 。これで、次回実行時にPASSWORD()コマンドを使用してパスワードを暗号化するように求められたときに、16文字の「古い」スタイルの暗号化ではなく新しい41文字の暗号化を使用することをサーバーに通知しました。 -
次に、mysqlサーバー/サービスを再起動する必要があります。 YMMVですが、Fedoraでは
sudo service mysqld restart
で簡単に実行できました 。 mysqlデーモンまたはサービスを再起動するためのOSの指示を確認してください -
次に、実際に
user
を編集する必要があります mysql内のテーブル。したがって、mysqlへのインタラクティブシェルを開きます(サーバーでは、mysql -uYourRootUsername -pYourRootPassword
と入力できます。 ) -
mysql
に変更します データベース。これは、サーバーの操作と認証に役立つすべてのものを保持するデータベースです。このデータベースを操作するには、rootアクセス権が必要です。 「アクセスが拒否されました」と表示された場合は、SOLです。ごめん。use mysql;
そのデータベースに切り替わります -
今、私たちはあなたに悲しみを与えていたユーザーを更新したいと思います。最終的には、すべてのユーザーを更新することをお勧めしますが、現時点では、エラーをスローしたユーザーに焦点を当てています。
update user set Password=password('YOUR_PASSWORD') where User='YOUR_USERNAME';
-
ここで、そのユーザーが接続しようとしたときに認証に新しいパスワードを使用するようにmysqlに指示する必要があります。
flush privileges;
。
行ってもいいはずです!