搭建主从复制数据库

。_饼干妹妹 提交于 2020-02-26 01:54:10

主库

#创建目录 
mkdir /data/mysql/master01
cd /data/mysql/master01
mkdir conf data
chmod 777 * -R

#创建配置文件 
cd /data/mysql/master01/conf
vim my.cnf

#输入如下内容 
[mysqld] 
#开启二进制日志 
log-bin=mysql-bin
#服务id,不可重复 
server-id=1
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
binlog_format=MIXED


#创建容器, 并启动
docker run --privileged=true --name percona-master01 -v /data/mysql/master01/data:/var/lib/mysql -v /data/mysql/master01/conf:/etc/my.cnf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.7.23


#创建同步账户以及授权 
create user 'itcast'@'%' identified by 'itcast'; 
grant replication slave on *.* to 'itcast'@'%'; 
flush privileges; 

#查看master状态 
show master status; 
#查看二进制日志相关的配置项 
show global variables like 'binlog%'; 
#查看server相关的配置项 
show global variables like 'server%';

 从库

#创建目录 
mkdir /data/mysql/slave01 
cd /data/mysql/slave01 
mkdir conf data 
chmod 777 * -R
 
#创建配置文件 
cd /data/mysql/slave01/conf 
vim my.cnf 

#输入如下内容 
[mysqld] 
server-id=2 #服务id,不可重复 
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' 

#创建容器并启动
docker run --privileged=true --name percona-slave01 -v /data/mysql/slave01/data:/var/lib/mysql -v /data/mysql/slave01/conf:/etc/my.cnf.d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.7.23

#设置master相关信息 ,ip为master的ip, user/password为刚刚master中创建的,port 为master的端口,master_log_file、master_log_pos在master通过show master status;查询出来的结果
CHANGE MASTER TO 
master_host='192.168.253.129', 
master_user='itcast', 
master_password='itcast', 
master_port=3306, 
master_log_file='mysql-bin.000002', 
master_log_pos=648; 

#启动同步 
start slave; 

#查看master状态 
show slave status; 

测试;

在从库的运行

show slave status;

字段Slave_IO_Running/Slave_SQL_Running都为yes说明主从搭建成功

另:在主库中创建数据库,表都会在从库中自动创建出来

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!