(1)因为我们的镜像是linux环境下的,我所在的系统是windows系统.首先通过docker客户端切换到linux环境下.
(2)使用docker pull mysql/mysql-server 下载mysql镜像;
(3)使用下载的镜像启动一个新的容器:docker run -d -p 3306:3306 --name mysqltest mysql/mysql-server.
本地端口3306映射到容器中的3306端口,容器名称为mysqltest。
(4)镜像成功启动:
文章图片
(5)登录到容器内部的mysql:
1.docker exec -it mysqltest bash;
2.mysql -uroot -p;
3.输入密码,登录成功可以进行操作了.(这个密码我们在创建容器的时候没有指定,但是随机帮我们生成了一个。可以通过docker logs mysqltest来查看.)
文章图片
(6)如果我们想尝试在容器外部用Navicat Premium连接到容器中的mysql.会出现如下错误。这是正确的。这时候我们并没有把容器中的环境设置权限供外部访问.
文章图片
(7)设置容器外部访问数据库权限:
1.我们不影响以前的用户,所以我们单独创建用户并赋权,分别执行以下命令:
【docker|docker mysql外部_Docker 安装MySQL以及外部访问】但首先得先更改root密码(alter user 'root'@'localhost' identified by 'pwd123456';
),否则会提示必须重设密码.
use mysql后执行以下命令
create user 'danielyu'@'%' IDENTIFIED BY 'pwd123456';
grant all privileges on *.* to 'danielyu'@'%'
with grant option;
2.这时候我们再尝试在容器外连接数据库.出现如下错误.这是因为我使用的数据库版本是8.0.17.
现在验证方式是caching_sha2_password作为身份验证插件(相关链接:https://blog.51cto.com/fengfeng688/2147169?source=dra).我们改回mysql_native_password
文章图片
(3)连接成功:
文章图片
推荐阅读
- docker|docker 运行mysql镜像_Docker下使用mysql镜像
- 数据库篇|Docker内安装Oracle19c(踩坑版放心安装)
- 微服务|【黑马-SpringCloud技术栈】【08】Docker_安装_自定义镜像_DockerCompose_搭建私有镜像仓库
- 云原生|【云原生 | 22】Docker运行Web服务实战之Nginx
- docker|Docker(十八)--Docker k8s--Kubernetes存储--Configmap配置管理
- Docker最全实战教程|如何对 Kubernetes 节点进行运维
- OceanBase|OceanBase Docker 部署&使用
- docker|企业运维容器之 docker 三剑客swarm
- Docker|Docker三剑客概述(Docker Machine、Docker Compose、Docker Swarm)