问题描述:
使用mysql的可是工具(MySQLWorkbench除外)和使用Java代码都无法连接;
解决方法:
对于使用MySQL的可视化工具,可以使用MySQL自带的MySQLWorkBench进行操作;
通用解决方案:
第一步:采用cmd命令进入MySQL;
第二步:输入命令select user,host,authentication_string from mysql.use;
结果:
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| user | host | plugin | authentication_string |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| mysql.infoschema | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
Snv7qHH9fV79VoexkoU4rGTkcu5GdiDXX9somh5bMHOhq1 |rd | $A$005$\]TQM!c#W
出现连接不上的原因:是因为MySQL8对root账号密码配置默认使用caching_sha2_password插件;
第三步:输入命令:ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
进行修改加密的规则;结果:
Query OK, 0 rows affected (0.32 sec)
第四步:输入命令: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
更新一下root的密码;结果:
Query OK, 0 rows affected (0.25 sec)
第五步:输入命令:FLUSH PRIVILEGES;更新一下权限;结果:
Query OK, 0 rows affected (0.11 sec)
就可以了。