搭建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主从复制原理
  • 启动两台虚拟机: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字段设置虚拟属性 mysql虚拟主键_MySQL

mysql字段设置虚拟属性 mysql虚拟主键_linux_02

==***注意:需要复制的数据库是还没有创建的,因为mysql的主从复制是从接入的那一刻开始,不是复制全部***==
  • 修改从机配置:
vim /etc/my.cnf
#从服务器唯一id
server-id=2
#启动中继日志
relay-log=mysql-relay

mysql字段设置虚拟属性 mysql虚拟主键_linux_03


重启两台服务器的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相关报错信息,进行修复。

mysql字段设置虚拟属性 mysql虚拟主键_数据库_04

  • 测试
  • 从主库创建名为 mycat_01 的数据库,到从库查看。
    此处的 mycat_01是我设置的需要复制的库名,需要根据自己的修改。
    主库命令:
CREATE DATABASE `mycat_01` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
  • 从库命令:
show databases;
  • 停止 从 服务复制功能
    注意:这里的命令需要切换到3306端口,也就是mysql中执行,包括停止从复制,重新配置 主 ,开启从复制
    停之前记得记录 Position 参数
-- 查看当前master信息,记录 Position
show master status \G
-- 停止从复制
stop slave;

mysql字段设置虚拟属性 mysql虚拟主键_mysql字段设置虚拟属性_05

  • 重新配置 主 并开启从复制
--  重新配置 主
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