发布:2023/4/15 21:30:25作者:管理员 来源:本站 浏览次数:566
一.准备工作
(1)VMWare虚拟机,安装的是centos7 系统;
(2)虚拟机内已安装好Docker。
(3)关闭防火墙。
二.使用Docker运行MySQL镜像
1.启动docker拉取mysql镜像
docker pull mysql:5.7.25
查看镜像是否下载成功
docker images
如图所示,mysql镜像拉取成功。
三.建立数据库容器挂载的虚拟映射
mkdir -p /home/mysql/conf.d
mkdir -p /home/mysql/data
新建配置文件my.cnf
touch /home/mysql/my.cnf
输入vim my.cnf,编辑配置文件,添加以下内容
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
server-id=1
log-bin=master-bin
log-bin-index=master-bin.index
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
按照上述步骤,新建另一个虚拟映射文件夹mysql2。
在mysql2下的my.cnf添加的内容对应为
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
四.创建并运行mysql容器
主库容器
docker run --privileged=true -d \
-v /home/mysql/data/:/var/lib/mysql \
-v /home/mysql/conf.d:/etc/mysql/conf.d \
-v /home/mysql/my.cnf:/etc/mysql/my.cnf \
-p 33306:3306 \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7.25
从库容器
docker run --privileged=true -d \
-v /home/mysql2/data/:/var/lib/mysql \
-v /home/mysql2/conf.d:/etc/mysql/conf.d \
-v /home/mysql2/my.cnf:/etc/mysql/my.cnf \
-p 33307:3306 \
--name mysql2 \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7.25
查看主库和从库容器是否成功运行
五、进入容器配置
1.进入主库容器
docker exec -it mysql bash
2.打开mysql操作页面,输入密码
mysql -uroot -p
创建用户,赋予权限
create user master;
grant replication slave on *.* to 'master'@'xxx.xxx.xxx.xx' IDENTIFIED BY '123456';
flush privileges;
其中xxx.xxx.xxx.xx是从库地址,用 如下命令得到
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器id
查看并记下master-bin.000003和2681
输入exit两次退回到终端。
3.进入从库容器,打开mysql操作页面
docker exec -it mysql2 bash
配置,把master-bin.000003和2681的值放入对应位置。
mysql> change master to master_host='xxx.xxx.xxx.xx',master_port=3306,master_user='master',master_password='123456',master_log_file='master-bin.000003',master_log_pos=2681;
其中xxx.xxx.xxx.xx是主库地址。
启动配置
start slave
输入命令查看
show slave status \G
结果如下
当红框内两项为Yes时,说明配置成功。关闭用stop slave。
4.测试
回到主库容器新建数据库
create database testDB;
再进入从库容器内用show databases即可查到testDB。
© Copyright 2014 - 2024 柏港建站平台 ejk5.com. 渝ICP备16000791号-4