docker部署mysql如何访问(完美解决docker安装mysql后Navicat连接不上的问题)
类别:服务器 浏览量:2868
时间:2021-10-20 08:38:15 docker部署mysql如何访问
完美解决docker安装mysql后Navicat连接不上的问题一、docker拉取镜像docker pull mysql (默认拉取最新版本的)
二、运行mysqldocker run -p 3308:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
容器名:mysql 密码:123456
三、查看是否运行docker ps -a
四、查看启动日志
docker logs mysql
mysql就是刚刚启动的容器名,确认mysql启动是正常的
五、错误当我用Navicat进行链接的时候,发现下图错误
我们需要下面的处理方式
1、进入mysql客户端
docker exec -it c6c8e8e7940f /bin/bash
其中c6c8e8e7940f是我的mysql的容器名
----等价命令 docker exec -it mysql /bin/bash
mysql -u root -p123456
123456就是mysql的登录密码,在docker run的时候设置的
2、查看用户信息
select host,user,plugin,authentication_string from mysql.user;
3、重新设置密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'newpassword'
newpassword就是新的密码
我把密码设置成了‘mysql'
4、使用Navicat重新连接
附:也能是防火墙的问题
sudo firewall-cmd --add-port=3306/tcp (放开3306的端口)
或者
sudo systemctl stop firewalld (关闭防火墙)
补充:docker安装mysql 8 并配置远程连接
第一步:下载mysql镜像镜像docker pull mysql
默认是下载最新稳定版
第二步:启动mysql镜像docker run --name dockermysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mysqlpassword -d mysql
1、--name 是镜像的别名
2、-p 将3306映射到3306(docker是个虚拟机有自己的端口)
3、-e MYSQL_ROOT_PASSWORD=mysqlpassword 设置mysql 服务器密码(后面需要,一定记住)
4、-d 后端启动
5、启动的镜像名称(可以用id代替)
第三步:查询启动的镜像docker ps
如下:
第四步:进入容器
docker exec -it dockermysql bash
dockermysql是镜像的名字 ,可以用id替代
第五步:登录mysqlmysql -u root -p
然后输入上面设置的密码
第六步:设置远程访问切换数据库(默认应该就是这个,不切换也行,保险起见切换一下)
use mysql;
更改远程链接授权
grant all privileges on *.* to 'root'@'%';
报错原因是加密方式问题
查询一下:
select Host,User,plugin from user;
没有修改前结果如下:
执行修改命令:
alter user 'root'@'%' identified with mysql_native_password by 'yourPassword';
修改成你的mysql密码
修改成功后结果如下:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持开心学习网。如有错误或未考虑完全的地方,望不吝赐教。
您可能感兴趣
- docker镜像配置的挂载路径(解决docker挂载的目录无法读写问题)
- 腾讯云docker安装elasticsearch(docker 启动elasticsearch镜像,挂载目录后报错的解决)
- dockervolume迁移工具(Docker中数据卷volume管理的两种方式)
- docker如何进入容器中(修改已有docker容器中的内容方法)
- nginx tomcat docker 负载均衡(Nginx+Tomcat实现负载均衡、动静分离的原理解析)
- docker安装openoffice镜像(docker安装部署 onlyoffice的详细过程)
- docker容器里面有java运行环境吗(利用 Docker 构建简单的 java 开发编译环境的方法详解)
- docker无法启动内存不足(解决docker磁盘空间不足问题)
- docker映射端口(Docker初级网络端口映射的配置)
- docker清理脚本(Docker 清理的常用方法及问题)
- 如何打开docker容器端口号(Docker容器网络端口配置过程详解)
- docker容器设置网站(docker容器中布置静态网站的实现)
- docker-compose怎么被执行的(Docker Compose一键ELK部署的方法实现)
- docker部署go项目(Gogs+Jenkins+Docker 自动化部署.NetCore的方法步骤)
- dockerswarm滚动部署(使用Docker部署war包项目的实现)
- docker启动k8s(k3d入门指南之在Docker中运行K3s的详细教程)
- 王铲铲的致富之路无限金币卡法攻略教学(王铲铲的致富之路无限金币卡法攻略教学)
- 文明6金币太少怎么办 文明6无限刷钱教程(文明6金币太少怎么办)
- 开国中将,王牌军63军首任政委,两个连襟一个上将一个少将传为佳话(王牌军63军首任政委)
- 臭名昭著的731部队最高负责人 石井四郎(臭名昭著的731部队最高负责人)
- 王牌部队,你看的剧情我看的时尚(你看的剧情我看的时尚)
- 被鉴定的古董价值300万 当心,你可能遇到诈骗了(被鉴定的古董价值300万)
热门推荐
- 深入理解mysql日志(mysql 重要日志文件汇总)
- python3yield使用教程(python中yield的用法详解——最简单,最清晰的解释)
- win7iis服务器的安装与配置(用IIS建立高安全性Web服务器的方法)
- dedecms内容页代码(DEDECMS生成HTML时提示 DedeTag Engine Create File False的解决方法)
- phpstudy安装包打不开(phpStudy访问速度慢和启动失败的解决办法)
- sql自动化上线平台(sql自动化检查和分析工具 之soar和soar-web 安装和使用体验)
- mysql时间戳和datetime对比(mysql中 datatime与timestamp的区别说明)
- pythonrequest包设置编码(解决python3中的requests解析中文页面出现乱码问题)
- pythonmatplotlib实例(Python3使用Matplotlib 绘制精美的数学函数图形)
- SQL Server中查看未释放的游标
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9