【问题截图】
原因:
Mysql 8.4默认情况下不再启用 “MySQL Native Password” 插件,导致连接失败。
解决方案
1、更改用户身份认证方式
- 登录mysql
mysql> use mysql;
Database changed
- 查看用户身份认证方式
mysql> select user,host,plugin from mysql.user;
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| root | % | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)
- 更改用户身份验证方式为:mysql_native_password
mysql> ALTER USER 'username'@'hostname' IDENTIFIED WITH mysql_native_password BY '用户密码';
Query OK, 0 rows affected (0.03 sec)
- 刷新权限:在更改用户身份验证方式后,务必刷新 MySQL 的权限信息以使更改生效。
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
在更新用户身份认证时可能会报错:Plugin ‘mysql_native_password‘ is not loaded
解决方法:
修改配置文件(windows)C:\ProgramData\MySQL\MySQL Server 8.4/my.ini
重启Mysql服务,再次执行更改用户身份验证代码
# Enable mysql_native_password plugin
[mysqld]
# 添加下面这行代码
mysql_native_password=ON