2、Centos7下搭建mysql下主从复制

前期环境配置

mysql安装配置可以看安装mysql那章
https://blog.csdn.net/AZXHNLS81/article/details/88691219
mysql1是主服务器 master
mysql2是备服务器 slave

主机名 IP地址
mysql1 192.168.162.28
mysql2 192.168.162.29

mysql1上的配置:

1.关闭防火墙和SElinux
systemctl stop firewalld.service
setenforce 0
2.编辑my.cnf文件
vim /etc/my.cnf
在[mysqld]下添加 log-bin=mysql-bin 
3.重启mysql
/etc/init.d/mysqld restart
4.在mysql1上添加一个mysql2用户
useradd -s /sbin/nologin -M mysql2
5.在mysql里面添加用户并且设置密码和刷新权限
GRANT REPLICATION SLAVE ON *.* TO ‘mysql2’@’192.168.162.29’ IDENTIFIED BY ‘mysql2’;
FLUSH PRIVILEGES;
6.查看192.168.162.28 二进制文件名和位置
mysql -u root -p

2、Centos7下搭建mysql下主从复制_第1张图片#### mysql2上的配置:

1.关闭防火墙和SElinux
systemctl stop firewalld.service
setenforce 0
2.在mysql执行
mysql -u root -p
mysql>CHANGE MASTER TO
>MASTER_HOST=’192.168.162.28’,
>MASTER_USER=’mysql2’,
>MASTER_PASSWORD=’mysql2’,
>MASTER_LOG_FILE=’mysql-bin.000002’,
>MASTER_LOG_POS=107;
3.开启复制和查看
mysql>START SLAVE;   #开启复制
mysql>SHOW SLAVE STATUS\G   #查看主从复制是否配置成功

2、Centos7下搭建mysql下主从复制_第2张图片

4.测试

4.1 mysql1上mysql操作
mysql>create database aa;
mysql>use aa;
mysql>create table tab1(id int auto_increment,name varchar(10),primary key(id));
mysql>show databases;
mysql>show tables;

2、Centos7下搭建mysql下主从复制_第3张图片

4.1 mysql2上mysql查看
mysql>show databases;
mysql>use aa
mysql>show tables;

2、Centos7下搭建mysql下主从复制_第4张图片

可以查看已经配置成功

如果出现以下错误:
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).

解决办法

mysql> show variables like ‘server_id’;
±--------------±------+
| Variable_name | Value |
±--------------±------+
| server_id | 1 |
±--------------±------+
1 row in set (0.00 sec)

查看是否一样,如果一样就在 mysql2上

mysql> slave start; set global server_id=2; 
mysql> slave start;
然后在mysql2上面重启slave
mysql>start slave;
mysql>show slave status\G; 

你可能感兴趣的:(mysql)