搭建MySQL主从复制
- 克隆虚拟机,一主一从
- 先将需要克隆的虚拟机停掉,“右键”->“管理”->“克隆”
“创建完整克隆”->“命名、存放位置”->“完成”
等待完成。。。
需要修改几个点:- “网络适配器”->“高级”->“生成”->“确定”
运行虚拟机 - 修改IP地址和UUID,命令:vim /etc/sysconfig/network-scripts/ifcfg-ens33
IP地址和UUID随意更改即可
重启网络,命令:systemctl restart network - 修改MySQL的UUID,命令:vim /var/lib/mysql/auto.cnf
UUID随意更改
重启MySQL,命令:systemctl restart mysqld
- “网络适配器”->“高级”->“生成”->“确定”
- 先将需要克隆的虚拟机停掉,“右键”->“管理”->“克隆”
至此虚拟机克隆完成
-
搭建MySQL主从复制
- MySQL主从复制原理
- MySQL主从复制原理
-
启动两台虚拟机:centos7-2(主机)centos7-3(从机)
-
修改主机配置:
vim /etc/my.cnf
#主服务器唯一id server-id=1 #启动二进制日志 log-bin=mysql-bin #设置不需要复制的数据库(可设置多个) binlog-ignore-db=数据库名称 #设置需要复制的数据库 binlog-do-db=数据库名称 #设置binlog格式 binlog_format=STATEMENT
-
==***注意:需要复制的数据库是还没有创建的,因为mysql的主从复制是从接入的那一刻开始,不是复制全部***==
-
修改从机配置:
vim /etc/my.cnf
#从服务器唯一id server-id=2 #启动中继日志 relay-log=mysql-relay
重启两台服务器的mysql服务并查看状态,确保启动成功systemctl restart mysqld systemctl status mysqld
-
授权从机复制数据
CREATE USER 'slave1'@'%' IDENTIFIED BY '123456';
- 如果在这一步报如下错误,请查看
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'%'; flush privileges;
- 如果在这一步报如下错误,请查看
-
查看log日志及接入点信息
File:为log日志
Position:为接入点
Binlog_Do_DB:为要复制的库名
Binlog_Ignore_DB:为不要复制的库名
Binlog_Do_DB和Binlog_Ignore_DB设置一个即可
切到从机执行
-
对应修改后复制到从机执行
CHANGE MASTER TO MASTER_HOST='192.168.171.100', MASTER_USER='slave1', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000002', MASTER_lOG_POS=751;
启动复制功能并查看主从复制状态,命令:
start slave; show slave status \G
如图,红色框中为Yes即表名成功,如果不是,请查看黄色框中的Error相关报错信息,进行修复。
-
测试
- 从主库创建名为 mycat_01 的数据库,到从库查看。
此处的 mycat_01是我设置的需要复制的库名,需要根据自己的修改。
主库命令:
从库命令:CREATE DATABASE `mycat_01` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
show databases;
- 从主库创建名为 mycat_01 的数据库,到从库查看。
-
停止 从 服务复制功能
注意:这里的命令需要切换到3306端口,也就是mysql中执行,包括停止从复制,重新配置 主 ,开启从复制
停之前记得记录 Position 参数-- 查看当前master信息,记录 Position show master status \G -- 停止从复制 stop slave;
-
重新配置 主 并开启从复制
-- 重新配置 主 reset slave; -- 配置连接 主 的相关信息 -- CHANGE MASTER TO MASTER_HOST='192.168.171.100', -- MASTER_USER='slave1', -- MASTER_PASSWORD='shuo', -- MASTER_LOG_FILE='mysql-bin.000001', -- MASTER_lOG_POS=154; -- 开启从复制 start slave;
-
开启完注意查看 从 状态,以确保成功
show slave status \G
其他章节 -> 跳转
end...