人闲太久,努力一下就以为是在拼命。
一、问题
Navicat Premium 连接 MySQL 8.0 报错:
1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client
二、原因
MySQL 8.0 改变了密码认证方式。
在 MySQL 8.0 之前版本的密码认证方式为:?
1
mysql_native_password
mysql_native_password
为了提供更安全的密码加密方式,从 MySQL 8.0 版本开始,默认使用密码认证方式为:?
1
caching_sha2_password
caching_sha2_password
报错 1251 的原因也很明显:?
1
Client does not support authentication protocol requested by server;
Client does not support authentication protocol requested by server;
翻译为中文就是:“客户端不支持服务端请求的认证协议”。
我这里用的 Navicat Premium 11 去连接 MySQL 8.0,因为版本太低,所以不支持 caching_sha2_password 的密码加密方式!!
在 MySQL 命令行终端,可以查看版本以及默认密码认证方式:?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
root@程序员的一天:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.
mysql>
mysql>
# 查看版本
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.21 |
+-----------+
1 row in set (0.00 sec)
mysql>
mysql>
# 查看默认加密方式
mysql>
mysql> use mysql;
Database changed
mysql>