docker运行mysql主从备份

  1. 为了使MySql的数据保持在宿主机上,我们先建立几个目录。
建立主服务器的数据存储    
    mkdir -pv /mysql/data
建立主服务器的配置目录  
    mkdir -pv /mysql/101 
建立从服务器的配置目录  
    mkdir -pv /mysql/102

2.设置主从服务器配置

设置主从服务器配置 
vi /mysql/101/101.cnf
    [mysqld]
    log-bin=mysql-bin
    server-id=101

vi /mysql/102/102.cnf
    [mysqld]
    log-bin=mysql-bin
    server-id=102

3.创建主从服务器容器

docker create --name mysqlsrv101 -v /home/tianbocheng/mysql/data/mysql101:/var/lib/mysql -v /home/tianbocheng/mysql/101:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 mysql
docker create --name mysqlsrv102 -v /home/tianbocheng/mysql/data/mysql102:/var/lib/mysql -v /home/tianbocheng/mysql/102:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3308:3306 mysql

4.启动容器

docker start mysqlsrv101 
docker start mysqlsrv102 

5.登录主服务器的mysql,查询master的状态

show master status;

-- 创建用户
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by '123456';

6.登录从服务器的mysql,设置与主服务器相关的配置参数

SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
change master to master_host='17.12.8.2',master_user='backup',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=2500;

-- master_host为docker的地址不能写127.0.0.1
-- master_user是在主库创建的用户
-- master_log_pos是主库show master status;查询出的Position

-- 启动服务
start slave;

-- 查看服务状态
show slave status;

-- Waiting for master to send event 就是成功了 
-- Connecting to master 多半是连接不通
-- 之后主库的修改都能同步到从库了

猜你喜欢

转载自blog.csdn.net/sinat_31908303/article/details/79377281