今天下载了MySQL 8.0 ,但是用Navicat连接时报错1251,
原来新版的MySQl8.0和Mysql5.0的加密方式不一样,
需要更改配置(即更改加密方式)。
1.在命令行登录mysql:
mysql -u root -p
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -u root -p
Enter password: ******
2.查看用户权限信息:
select host,user,plugin,authentication_string from mysql.user;
mysql> select host,user,plugin,authentication_string from mysql.user;
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| host | user | plugin | authentication_string |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| localhost | mysql.infoschema | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root | caching_sha2_password | $A$005$|{jxw<[P4yC9.IXQMPtTL5BLkbHodLmBNdtnRPJsFbVwY2yAswsprqKA |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
4 rows in set (0.57 )
提示:host表示权限(localhost是本地,%不限制);plugin为‘cahing_sha2_password’则需改密码。
3.更改加密方式:
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘newpassword’;
‘newpassword’是新的密码;
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'newpassword';
ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%'
这里出错,把‘%’改为‘localhost’
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘newpassword’;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yechunrong';
Query OK, 0 rows affected (0.78 sec)
修改成功。
4.在Navicat输入新的密码就可以成功连接!