PHP が mysql8 に接続できない (暗号化プラグインの問題)

php7はmysql8に接続しません

//连接数据库
$conn=mysqli_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database);
if (mysqli_connect_errno()) {
    
    
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

画像の説明を追加してください

多くのチュートリアルでは、/etc/my.cnf 構成ファイルに構成を追加するように記載されています。

default-authentication-plugin=mysql_native_password

次に、mysqlを再起動してユーザーを作成します

CREATE USER 'native'@'localhost' IDENTIFIED  BY 'password'

しかし、実際に試してみてもまだ動作しません。データベースを確認してください

SELECT Host,User,plugin FROM mysql.user;

ユーザーが使用している暗号化プラグインを確認してください。
ここに画像の説明を挿入します
前に作成したユーザーは引き続き caching_sha2_password プラグインを使用しています。この時点で、ユーザーの作成時に使用するプラグインを指定できます。こちらの方が安定しますので、作成後にどのようなプラグインが使われているか確認すると良いでしょう。

CREATE USER 'native'@'localhost' IDENTIFIED WITH mysql_native_password  BY 'password'

おすすめ

転載: blog.csdn.net/weixin_45654405/article/details/125082625