Docker 安装mysql以及外部访问

(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)链接成功:

     

相关文章
相关标签/搜索