zoukankan      html  css  js  c++  java
  • 虚拟机中docker安装mysql远程无法访问

    问题:虚拟机中docker安装mysql远程无法访问

    背景:

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

    navicat远程连接mysql的时候,会提示以下错误:

    1251-Client does not support authentication protocol requested by server; consider upgrading MySQL client
    

    原因:

    mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,把mysql用户登录密码加密规则还原成mysql_native_password

    解决:

    1.在虚拟机中登录到mysql容器,然后进入mysql

    [root@localhost ~]# docker exec -it mysql01 bash
    
    root@9c99a69a5b50:/# mysql -uroot -p
    
    mysql> select host,user,plugin,authentication_string from mysql.user;
    

    备注:host为 % 表示不限制ip localhost表示本机使用 plugin非mysql_native_password 则需要修改密码

    2.修改加密规则

    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.01 sec)
    

    连接成功

  • 相关阅读:
    dracut-initqueue timeout
    Request.Url
    ipv4 ipv6数据库存储
    DataRow To DataTable
    AS ShortCut
    linq on 多链接条件
    SQL逻辑查询语句执行顺序
    ckeditor 使用几点
    SqlDataAdapter 更新插入 与 InsertBulkCopy
    HTTP协议改HTTPS
  • 原文地址:https://www.cnblogs.com/sunyanblog/p/12772293.html
Copyright © 2011-2022 走看看