Linux下Docker安装mysql-超详细步骤

  1. 安装Docker Engine

官方参考文档:https://docs.docker.com/engine/install/centos/

  • 若之前有安装docker,需要先卸载之前的docker

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  • 安装必要的依赖

sudo yum install -y yum-utils
  • 设置docker仓库

sudo yum-config-manager \  
            --add-repo \  
            https://download.docker.com/linux/centos/docker-ce.repo
  • 查看可以安装的docker版本

yum list docker-ce --showduplicates | sort -r
  • 安装最新的或者指定的docker版本

最新的:sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

指定的:sudo yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io docker-compose-plugin
  • 启动docker并设置为开机启动

sudo systemctl start docker && sudo systemctl enable docker
  • 测试docker是否安装成功

sudo docker run hello-world

出现 Hello from Docker! 表示docker安装成功

  • 配置docker的镜像加速器

先进入到/etc/docker, 找到daemon.json文件,打开文件配置镜像加速器地址。(没有的话需要自己创建目录和json文件。

{
"registry-mirrors":["https://rsbud4vc.mirror.aliyuncs.com","https://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com","http://qtid6917.mirror.aliyuncs.com","https://rncxm540.mirror.aliyuncs.com","https://e9yneuy4.mirror.aliyuncs.com","https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors"]
}

  1. 下载image镜像并创建docker容器实例

参考文档:https://www.docker.com/

参考文档:https://hub.docker.com/

  • 下载mysql的image镜像

docker pull mysql:5.7
  • 查看下载的镜像

docker images
  • 根据镜像创建docker容器

docker run -d -p 3306:3306 --privileged=true -v /usr/local/mysql/log:/var/log/mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=abc123456 --name mysql mysql:5.7
  • 查看创建的docker容器实例

docker ps

出现如上的容器实例ID和容器实例名mysql的信息表示 docker启动mysql容器成功!

  1. 进入到docker容器实例修改访问权限

  • 进入到docker容器实例中

docker exec -it mysql /bin/bash
  • mysql5.7版本支持远程Ip访问需要修改访问授权

mysql> grant all privileges on *.* to root@"%" identified by "abc123456" with grant option;
  • 刷新权限集

mysql> flush privileges;
  • 修改完成后输入exit退出容器实例,返回到宿主机上

  1. 进入docker修改my.conf配置

  • 进入到/etc/mysql/conf.d 下修改 my.conf文件的配置

  • 或者修改宿主机上的配置文件可以映射修改容器内的配置(/usr/local/mysql/conf/my.conf)

[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8

[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  1. 打开防火墙端口

  • 查询防火墙是否打开

systemctl firewall status

出现active 或者running 或者 enabled表示防火墙已打开。

  • 查询对应端口是否已经开放防火墙

firewall-cmd --query-port=3306/tcp
  • 打开对应端口的防火墙控制规则

firewall-cmd --zone=public --add-port=3306/tcp --permanent
  • 刷新防火墙规则

firewall-cmd --reload
  • 查询已经打开的防火墙端口列表

firewall-cmd --list-port

使用本地telnet ip port测试远程服务器的端口是否已经打开防火墙限制!

  1. 远程连接测试

使用navicat连接mysql数据库是否成功。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若依-咬一口甜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值