ホームページ  >  記事  >  バックエンド開発  >  php が mysql8 に接続してエラーを報告した場合はどうすればよいですか?

php が mysql8 に接続してエラーを報告した場合はどうすればよいですか?

藏色散人
藏色散人オリジナル
2023-01-18 10:28:013360ブラウズ

mysql8 に接続するときの PHP エラーの解決策: 1. "/etc/my.cnf" の "mysql_native_password" の前のコメントをオフにします; 2. mysql を入力し、パスワードを "mysql_native_password" で更新しますそれ。

php が mysql8 に接続してエラーを報告した場合はどうすればよいですか?

#このチュートリアルの動作環境: CentOS 7 システム、mysql8 バージョン、DELL G3 コンピューター

次の場合はどうすればよいですかphp が mysql8 に接続できませんか?

MYSQL8 への PHP 接続失敗の解決策

##0x01 質問

夕方、グループの生徒が

php が爆発して 2 時間出てこなかったと言いました。
php が mysql8 に接続してエラーを報告した場合はどうすればよいですか?

どう見ても問題ないのですが、とにかく接続が失敗し続けます。

私は彼に

mysqli_error() を追加するように依頼しましたが、出力はありませんでした。PHP 関連コンポーネントと mysql ログを確認しましたが、応答がありませんでした。はクラウドホストです。localhost127.0.0.1 に変更してみましたが、まだ役に立ちません。

次に、

mysql バージョン mysql8 を確認しました。これは、まだ mysql5 を使用している人にとっては難しすぎるため、確認してみました。 mysql8 のアップデートを取得した後、子供を迎えに行きました (笑)。

php が mysql8 に接続してエラーを報告した場合はどうすればよいですか?

簡単に言えば、

mysql8 では、新しい検証メソッド caching_sha2_password が登場し、このメソッドが新しい検証メカニズムになりました。パスワードの設定時にデフォルトでこの方法で処理され、元の mysql_native_password が置き換えられます。このため、php に接続できません。

詳細については、次のリンクを参照してください:


https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade -caching -sha2-password

0x02 ソリューション

1.

/etc/my.cnf(centos for学生 ) mysql_native_password. の前のコメントをオフにします。つまり、古い検証方法

[mysqld]
default_authentication_plugin=mysql_native_password
2 に戻します。

mysql と入力し、mysql_native_password を使用してパスワードを更新します。

mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
mysql>flush privileges;
または、新しいユーザーを追加することもできます。

mysql>CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
mysql>GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
mysql>flush privileges;
問題は正常に解決されました。

0x03 フォローアップ

よく考えたら、

php が使えず、新しい認証方法も使えません。それなら、これは無駄ではないので、php を使えば確かに解決できるので、もう一度見てみたら、発見がありました。
php が mysql8 に接続してエラーを報告した場合はどうすればよいですか?

確かにサポートできる新しいコンポーネント

mysql_xdevapi がありますが、php7.2.4 より前は、php PDO## のいずれかでした。 # または php mysqli は新しい検証方法をサポートできません。
php が mysql8 に接続してエラーを報告した場合はどうすればよいですか?問題は解決したので、この方法は再度試行しません。今後使用するときにもう一度試して記録してください。

推奨学習: 「

PHP ビデオ チュートリアル

以上がphp が mysql8 に接続してエラーを報告した場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。