(1)由于咱们的镜像是linux环境下的,我所在的系统是windows系统.首先经过docker客户端切换到linux环境下.mysql
(2)使用docker pull mysql/mysql-server 下载mysql镜像;linux
(3)使用下载的镜像启动一个新的容器:docker run -d -p 3306:3306 --name mysqltest mysql/mysql-server.sql
本地端口3306映射到容器中的3306端口,容器名称为mysqltest。docker
(4)镜像成功启动:数据库
(5)登陆到容器内部的mysql:windows
1.docker exec -it mysqltest bash;bash
2.mysql -uroot -p;ide
3.输入密码,登陆成功能够进行操做了.(这个密码咱们在建立容器的时候没有指定,可是随机帮咱们生成了一个。能够经过docker logs mysqltest来查看.)spa
(6)若是咱们想尝试在容器外部用Navicat Premium链接到容器中的mysql.会出现以下错误。这是正确的。这时候咱们并无把容器中的环境设置权限供外部访问.插件
(7)设置容器外部访问数据库权限:
1.咱们不影响之前的用户,因此咱们单首创建用户并赋权,分别执行如下命令:
但首先得先更改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)链接成功: