Docker部署mysql5.7

部署环境准备

百度云服务器 centos 7.2
inux instance-5bf3tef2 3.10.0-1062.4.1.el7.x86_64 #1 SMP Fri Oct 18 17:15:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Docker 版本
Docker version 19.03.5, build 633a0ea
Mysql 5.7

环境安装
1. 拉取mysql 镜像
docker search mysql
docker pull centos/mysql-57-centos7

在这里插入图片描述
查看镜像

docker iamges

在这里插入图片描述

2. 创建挂载目录
mkdir -p /root/mysql57/conf  /root/mysql57/data /root/mysql57/logs

conf目录用于挂载mysql容器的配置目录
data目录挂载mysql数据目录
logs目录挂载mysql日志目录

3. 复制配置文件

先运行一个没有挂载目录的mysql容器

docker run -p 3307:3306 --name mysql57  -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

将该容器内的mysql配置目录copy到conf下

docker cp mysql57:/etc/mysql /root/mysql57/conf/
4. 重新运行容器,并加上挂载的目录
docker stop mysql57
docker rm mysql57
docker run -p 3306:3306 --name mysql57 --privileged=true -v /root/mysql57/conf/mysql:/etc/mysql -v /root/mysql57/data:/var/lib/mysql -v /root/mysql57/logs:/logs -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --lower_case_table_names=1

-p 端口映射,宿主机端口:容器端口
–name 容器名称
–privileged 容器内root用户与宿主机root用户享用相同权限
-v 数据挂载 宿主机目录:容器目录
-e 添加参数 MYSQL_ROOT_PASSWORD 设定mysql root密码
-d 后台运行容器

5. 进入容器配置mysql
docker exec -it mysql57 bash

进入容器后,

mysql -uroot -p

执行, root用户远程登陆授权命令

grant all privileges on *.* to root@'%' identified by '123456';
flush privileges;

这样就可以通过主机地址访问mysql了
配置字符集:
在/root/mysql57/conf/mysql/conf.d下新建my.cnf文件(文件名不重要,重要得是以.cnf为后缀)

vim my.cnf
添加内容如下
[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
[mysql]
default-character-set  = utf8
[client]
default-character-set  = utf8

重启mysql

docker restart mysql57

进入容器内,登陆mysql,用以下命令查看mysql的字符集是否修改

SHOW VARIABLES LIKE 'character%';

为什么要把配置文件放在/root/mysql57/conf/mysql/conf.d下呢?
我试过直接修改mysql下目录下的my.cnf,但是没起作用,于是就把它放在了/root/mysql57/conf/mysql/conf.d下,当然取其他名字也是可以的。原理就在于mysql 5.7.2下的conf.d中的cnf文件会覆盖默认配置

至此,docker 安装mysql完成!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值