部门升级数据库版本:

今天下了个 MySQL8.0,发现Navicat连接不上,总是报错1251;

原因是MySQL8.0版本的加密方式和MySQL5.0的不一样,连接会报错。

从网上看了一些资料,试了很多种方法,终于找到一种可以实现的:

  更改加密方式:

1,命令行进入mysql的root账户:

C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin>mysql -uroot -p
Enter password: ****
ERROR 1045 (28000): Access denied for user \'root\'@\'localhost\' (using password: YES)

2,更改加密方式

mysql> ALTER USER \'root\'@\'localhost\' IDENTIFIED BY \'password\' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.10 sec)

3,更改密码:该例子中 toor为新密码;

mysql> ALTER USER \'root\'@\'localhost\' IDENTIFIED WITH mysql_native_password BY \'toor\';
Query OK, 0 rows affected (0.35 sec)

4,刷新权限

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.28 sec)

注:

\'root\'   为你自己定义的用户名

\'localhost\' 指的是用户开放的IP,可以是\'localhost\'(仅本机访问,相当于127.0.0.1),可以是具体的\'*.*.*.*\'(具体某一IP),也可以是 \'%\' (所有IP均可访问)

\'password\' 是你想使用的用户密码

现在使用Navicat 去连接 MySql,问题就解决了

收藏 打印