docker搭建mysql并远程访问

240 阅读1分钟

一、拉取mysql镜像

本文以mysql5.6、FinalShell工具为例


docker pull mysql:5.6

image.png

二、简单一步搞定

docker run -d -p 3306:3306 
--name docker-mysql-5.6 -v /e/Docker/mysql56/log:/var/log/mysql -v /e/Docker/mysql56/data:/var/lib/mysql -v /e/Docker/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6

三、或者使用分布操作

  1. 创建容器
docker run -itd --name=mysql56 --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6

参数说明:

-itd -i -t -d的缩写  
-i 以交互模式运行容器,通常与-t同时使用  
-t 为容器重新分配一个伪输入终端,通常与-i同时使用  
-d 后台运行容器,并返回容器ID,也即启动守护式容器  
-p 23306:3306 映射容器服务的 3306 端口到宿主机的 23306 端口,外部主机可以直接通过 宿主机ip:23306 访问到 MySQL 的服务。  
--name=mysql56 容器别名  
--restart=always 重启策略:在容器退出时总是重启容器  
-e MYSQL_ROOT_PASSWORD=123456 root账号初始密码

2. 配置mysql允许远程访问

# 通过 exec -it 进入容易
docker exec -it mysql56 bash
# 进入容器后用命令
mysql -u root -p 
# 输入密码
123456
# 通过mysql-cli登录服务后, 使用sql要一定要以 ";" 结尾
# 切换数据库
use mysql;
# 允许root用户远程访问
update user set host='%' where user='root';
# 查询并出现 ‘%’ 的root用户即可
select user, host from user;
# 刷新权限立即生效
flush privileges;