使用客户端连接 Mysql 出现Error no. 1251错误

12 篇文章 0 订阅
8 篇文章 3 订阅

错误详情信息:

    ERROR 1251

    client does not support authentication protocol requested by server;consider upgrading Mysql client

问题原因:

    主要是由于mysql8以前的加密规则与mysql8以后的存在差异。

解决办法:

 ##修改加密规则

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

##更新一下用户的密码 password 为自己重新设置的密码
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

##刷新权限
    FLUSH PRIVILEGES;

过程再现:

docker拉取mysql :

[root@localhost ~]# docker pull mysql

docker启动mysql :

[root@localhost ~]# docker run --name mysql01 -d mysql:latest

查看启动失败原因: 

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                           PORTS               NAMES
42f09819908b        mysql               "docker-entrypoint.sh"   34 seconds ago      Exited (1) 33 seconds ago                            mysql01
[root@localhost ~]# docker logs 42f09819908b
error: database is uninitialized and password option is not specified 
You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD;#启动失败;这个三个参数必须指定一个

docker上启动mysql容器成功,但不能通过客户端连接:

[root@localhost ~]# docker run --name mysql01 -d -e MYSQL_ROOT_PASSWORD=123456 mysql:latest

docker启动mysql容器并通过客户端连接:

[root@localhost ~]# docker run --name mysql01 -d -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:latest
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
2d8ae10bb2bd        mysql:latest        "docker-entrypoint.s…"   49 minutes ago      Up 49 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql01

解决处理: 

[root@localhost ~]# docker exec -it 2d8ae10bb2bd /bin/bash
root@2d8ae10bb2bd:/# mysql -uroot -p123456
WARNING: IPv4 forwarding is disabled. Networking will not work.
5b0a218d82026735da14b5124b192869d063d94ca97d3bf5acae8a93fd849527
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
5b0a218d8202        mysql:latest        "docker-entrypoint.s…"   4 seconds ago       Up 3 seconds        0.0.0.0:3306->3306/tcp, 33060/tcp   mysql01
cd05b8b56196        redis               "docker-entrypoint.s…"   5 hours ago         Up 5 hours          0.0.0.0:6379->6379/tcp              myredis03
[root@localhost ~]# docker exec -it mysql01 /bin/bash
root@5b0a218d8202:/# mysql -uroot -p123456
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.21 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select host,user,plugin,authentication_string from mysql.user;
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| host      | user             | plugin                | authentication_string                                                  |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| %         | root             | caching_sha2_password | $A$005$jb[ 3qv*
 hzgCD#ttriLUvsvEFt.8j30tpUTxSyLaGnmLY5pasnP0EfNx5 |
| 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$JTMNdR5:=Z}r#8;gbHiBZncjQWfHBpUlqBXJAuKPmmwtBnMTO/htWWJN8. |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)

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

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

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

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.01 sec)

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

mysql> select host,user,plugin,authentication_string from mysql.user;
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| host      | user             | plugin                | authentication_string                                                  |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| %         | root             | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9                              |
| 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             | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9                              |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)

mysql>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值