web-dev-qa-db-ja.com

mysqli_real_connect() - クライアントに知られていない認証方法

デバッグログに次のような警告が表示され続けます。

PHP Warning:     mysqli_real_connect(): The server requested authentication method unknown to the client [mysql_old_password] in /wp-includes/wp-db.php on line 1379
PHP Warning:     mysqli_real_connect(): (HY000/2054): The server requested authentication method unknown to the client in /wp-includes/wp-db.php on line 1379
PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /wp-includes/wp-db.php on line 1409

何度も何度も、私は次のセットアップを実行しています:

PHP       - 5.5.6
MYSQL     - 5.5.38
WordPress - 4.0.1

私のプラグインはすべて最新のものであり、私が以前に使用したことがないものは多くありません。この問題はこのホストでのみ発生するようであるため、プラグインは除外しました。私はこの問題を調べましたが、答えのどれが実際に言っているのか理解できません。

MYSQL PHP非互換性

MySQLのアクセス権と接続を整理する手助けが必要

ハッシュされるには長すぎるパスワードを入力したユーザーがいるようです。もしそうなら、どのように私はそれを処理し、みんなのパスワードをリセットすることになるでしょうか?誰かが素人の言葉で正確に何が問題なのか説明できるでしょうか。

1
Howdy_McGee

これはWordPressやあなたのユーザーのパスワードとは関係ありません。

それが意味することはあなたのMySQLサーバがまだMySQL 4.1で変更された古いパスワードハッシュメカニズムを使用しているということです。 PHP mysqliクライアントは新しく、古いパスワードメカニズムをサポートしていません。これはエラーを引き起こすので、WordPressはこれをサポートしていますが推奨されていない古いmysqlクライアントにフォールバックします(これがあなたが見る3番目のエラーメッセージです)。

言い換えれば、ここで言及している「パスワード」はWor​​dPressのパスワードではなく、WordPressをデータベースに接続するために使用するパスワードです。基本的には、wp-config.phpファイル内のそのユーザー名とパスワード。

あなたがする必要があるのは、データベース自体のパスワードをnew-hash-versionに変更することです。これは少し難解です、そしてもしあなたが実際にMySQLサーバを制御していなければ、あなたはそれをするためのアクセスを持っていないかもしれません。

ホストにold_passwordsを無効にするよう依頼することもできますが、それが共有データベースシステムである場合は、そうしたくない可能性があります。

サーバーを制御している場合は、この答えを調べてください。彼は逆の答えを得て、old_passwordsを有効にする方法を説明していることに注意してください。あなたは同じ基本的なプロセスをしたいですが、反対の方法で、old_passwordsを無効にして、より短いものではなくより長いハッシュメカニズムを取得します。

https://dba.stackexchange.com/questions/33447/connect-error-2054-mysql-old-password-issue-still-not-solved

6
Otto