使用docker部署mysql, docker-compose主从同步

171 阅读1分钟

配置MYSQL:

下载mysql镜像

docker pull mysql:5.7

挂载外部配置和数据安装

1, 在主目录下安装
cd ~
mkdir ~/docker/mysql
mkdir ~/docker/mysql/conf.d
mkdir ~/docker/mysql/data/

  • 创建my.cnf配置文件
touch /home/mysql/my.cnf
写入内容:
[mysqld] 
#修改配置文件:vim /etc/my.cnf 
#主服务器唯一ID 
server-id=1 
#启用二进制日志 
log-bin=mysql-bin 
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql 
binlog-ignore-db=information_schema 
#设置需要复制的数据库 需要复制的主数据库名字 
binlog-do-db=testdb 
#设置logbin格式
binlog_format=STATEMENT

启动mysql

docker run  -di -v ~/docker/mysql/data/:/var/lib/mysql -v ~/docker/mysql/conf.d:/etc/mysql/conf.d -v ~/docker/mysql/my.cnf:/etc/mysql/my.cnf -p 33310:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7


 docker run --restart=always --privileged=true -d -v ~/docker/mysql/data/:/var/lib/mysql -v ~/docker/mysql/conf.d:/etc/mysql/conf.d -v ~/docker/mysql/my.cnf:/etc/mysql/my.cnf -p 33306:3306 --name my-mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
  
  
  ​
  参数说明:
  --restart=always: 当Docker 重启时,容器会自动启动。
  --privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
  -v ~docker/mysql/conf.d/my.cnf:/etc/my.cnf:映射配置文件
  -v ~docker/mysql/data/:/var/lib/mysql:映射数据目录

测试连接

image.png

主从同步配置

使用docker-compose进行主从同步的配置

详细看如下文章:

docker network inspect mysql_ms_myweb

change master to master_host='172.18.0.2',master_user='slave',master_password='123456',master_port=3306,master_log_file='mysql-bin.000004', master_log_pos=610,master_connect_retry=30;

image.png

image.png

参考文献: