云主机在Docker创建MySQL容器后本地Navicat连接出现:1251—Clients does not support authentication protocol……
2023-09-11 14:22:20 时间
首先在云主机的docker创建Mysql容器的步骤:可参考官方操作
1. docker pull mysql:tags
# 获取mysql的镜像,后面的tags是版本?如果不写默认是latest,最近更新的那个
https://hub.docker.com/_/mysql?tab=tags
2. 启动mysql镜像
docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
#参数解析:
#-p:设置端口映射,在虚拟机上,后面的3306是容器的端口,前面的是外部主机的访问端口,如果不是设置这个映射规则的话,那么就无法访问,云主机上以此类推
#name: 自定义创建的容器名
#-e:为MySQL root user设置一个登录密码?如果不设置的话,就会创建失败
#-d:所使用的镜像,如果不设置tags默认就是latest
打开navicat,连接创建的数据库,ip地址填云主机的公网ip?(我也不太懂),如果你是第一次使用云主机,尚未配置安全组之类的,要先配置安全组:https://cloud.tencent.com/document/product/213/18197
此时出现提示:(没截到图,图片出处见水印)
原因应该是这篇博客里提到的:
“mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 所以需要把mysql用户登录密码加密规则还原成mysql_native_password. ”
那就要进入到Mysql容器中修改对应的规则了。
https://blog.csdn.net/m0_37904728/article/details/78621191
1. docker exec -it mysql bash
2. mysql -uroot -p
进入到Mysql命令行后
3. ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
4. flush privileges;
到此,可以在navicat中连接云主机上的mysql容器了。
相关文章
- 【MySql】mysql 字段个数的限制
- 【Mysql安装】Mac下安装mysql
- 【Docker】docker的安装和常用命令
- VB6 如何连接MYSQL数据库
- XtraBackup出现 Can't connect to local MySQL server through socket '/tmp/mysql.sock'
- MySQL高可用性之Keepalived+Mysql(双主热备)
- MySql中json类型的使用___mybatis存取mysql中的json
- ubantu18.04使用docker部署mysql5.7及在宿主机登录容器内mysql
- 启动docker容器时报错:iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 5000 -j DNAT -
- Docker安装部署MongoDB及MySql和MongoDB的语法对比
- 使用Java JdbcTemplate对mySQL进行CRUD增删改查操作
- 78.第十七章 企业级容器技术docker -- Docker 镜像制作和管理(六)
- 77.第十七章 企业级容器技术docker -- Docker 镜像制作和管理(五)
- Mysql数据库的mysql Schema 究竟有哪些东西& 手工注入的基础要领
- 【云原生 • Docker】docker 环境搭建、docker 与容器常用指令大全
- Docker----安装 docker-compose 环境
- Mysql慢日志查询
- 【最全最详细Docker】用docker部署mysql、tomcat、nginx、redis 环境部署
- 【高可用MySQL解决方案】centos7配置mysql主从复制
- Docker学习笔记19:docker使用之命令大全
- MySQL 索引失效
- Docker学习笔记(五):Dockerfile生成历史查询、修改docker容器编码格式
- 云原生之使用Docker部署mysql数据库