#このチュートリアルの動作環境: CentOS 7 システム、mysql8 バージョン、DELL G3 コンピューターmysql8 に接続するときの PHP エラーの解決策: 1. "/etc/my.cnf" の "mysql_native_password" の前のコメントをオフにします; 2. mysql を入力し、パスワードを "mysql_native_password" で更新しますそれ。
次の場合はどうすればよいですかphp が mysql8 に接続できませんか?
MYSQL8 への PHP 接続失敗の解決策
php が爆発して 2 時間出てこなかったと言いました。
mysqli_error() を追加するように依頼しましたが、出力はありませんでした。PHP 関連コンポーネントと
mysql ログを確認しましたが、応答がありませんでした。はクラウドホストです。
localhost を
127.0.0.1 に変更してみましたが、まだ役に立ちません。
mysql バージョン
mysql8 を確認しました。これは、まだ
mysql5 を使用している人にとっては難しすぎるため、確認してみました。
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
/etc/my.cnf(
centos for学生 )
mysql_native_password. の前のコメントをオフにします。つまり、古い検証方法
[mysqld] default_authentication_plugin=mysql_native_password2 に戻します。
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;問題は正常に解決されました。
php が使えず、新しい認証方法も使えません。それなら、これは無駄ではないので、
php を使えば確かに解決できるので、もう一度見てみたら、発見がありました。
mysql_xdevapi がありますが、
php7.2.4 より前は、
php PDO## のいずれかでした。 # または php mysqli
は新しい検証方法をサポートできません。
問題は解決したので、この方法は再度試行しません。今後使用するときにもう一度試して記録してください。
推奨学習: 「
PHP ビデオ チュートリアル以上がphp が mysql8 に接続してエラーを報告した場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。