創(chuàng)建Centos7服務(wù)器
使用vbox創(chuàng)建虛擬機(jī)
配置網(wǎng)絡(luò)
cd /etc/sysconfig/network-scripts/
安裝docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安裝docker-compose
#下載
curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#添加執(zhí)行權(quán)限
chmod +x /usr/local/bin/docker-compose
#設(shè)置環(huán)境path路徑
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#驗(yàn)證
docker-compose version
拉取鏡像
docker pull mysql:5.6
測(cè)試鏡像
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6
移除測(cè)試容器
使用docker-compose創(chuàng)建主服務(wù)器
version: '3.1'
services:
db_master:
image: mysql:5.7
container_name: mysql57_master
restart: on-failure
environment:
TZ : "Asia/Shanghai"
ports:
- 3306:3306
environment:
- "MYSQL_ROOT_PASSWORD=root"
- "MYSQL_DATABASE=test"
- "TZ=Asia/Shanghai"
volumes:
- ./data/mydir:/mydir
- ./data/etc_mysql_mysql.conf.d:/etc/mysql/mysql.conf.d/
- ./data/etc_mysql_conf.d/:/etc/mysql/conf.d/
- ./data/var_lib_mysql:/var/lib/mysql
添加配置二進(jìn)制日志etc_mysql_mysql.conf/binary_log.cnf
[mysqld]
server-id = 1 # 給主服務(wù)器分配一個(gè)唯一的ID
log-bin=mysql-bin # 開(kāi)啟二進(jìn)制日志功能
binlog_format=row # 設(shè)置binlog格式為ROW彭则,更適合復(fù)制
查看主服務(wù)器狀態(tài),注意主服務(wù)器的日志和偏移量,后面復(fù)制需要用到
SHOW MASTER STATUS;
創(chuàng)建復(fù)制用戶,注意需要給用戶添加復(fù)制權(quán)限
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
FLUSH PRIVILEGES;
使用docker-compose創(chuàng)建從服務(wù)器
version: '3.1'
services:
db_slave_1:
image: mysql:5.7
container_name: mysql57_slave_1
depends_on:
- db_master
restart: on-failure
environment:
TZ : "Asia/Shanghai"
ports:
- 33061:3306
environment:
- "MYSQL_ROOT_PASSWORD=root"
- "MYSQL_DATABASE=test"
- "TZ=Asia/Shanghai"
volumes:
- ./data_slave/mydir:/mydir
- ./data_slave/etc_mysql_mysql.conf.d:/etc/mysql/mysql.conf.d/
- ./data_slave/etc_mysql_conf.d/:/etc/mysql/conf.d/
- ./data_slave/var_lib_mysql:/var/lib/mysql
配置從服務(wù)器的id在./data_slave/etc_mysql_conf.d/文件夾下配置slave.cnf
[mysqld]
# 從分區(qū)id從100后開(kāi)始配置
server-id = 102
設(shè)置從服務(wù)器連接到主服務(wù)器的參數(shù)
CHANGE MASTER TO
MASTER_HOST='192.168.56.102',
MASTER_PORT=3306,
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=0;
啟動(dòng)/停止從服務(wù)器復(fù)制
START SLAVE;
STOP SLAVE;
查看從服務(wù)器狀態(tài)
SHOW SLAVE STATUS;