Mysql主从复制环境搭建(如果搭建失败,再来一遍吧)
1.提前准备好两台服务器,分别安装Mysql并启动服务成功
a:复制vm-centos7整个目录,改名vm-master(主库192.168.188.188) vm-slave(从库192.168.188.189)
b:进入vm-slave,修改IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
service network restart
c:通过FinalShell分别连接主库和从库
配置-主库Master:
2.第一步:修改Mysql数据库的配置文件vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin #[必须]启用二进制日志
server-id=100 #[必须]服务器唯一ID
3.第二步:重启Mysql服务
systemctl restart mysqld
4.第三步:登录Mysql数据库,执行下面SQL
a:登录
mysql -uroot -proot
b:创建一个用户xiaoming,密码为Root@123456,并且给xiaoming用户授予REPLICATION SLAVE权限,slave必须被master授权具有该权限的用户,才能通过该用户复制
GRANT REPLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'Root@123456';
c:刷新权限
flush privileges;
5.第四步:登录Mysql数据库,执行下面SQL,记录下结果中File和Position的值
show master status;
得到结果:File:文件名称(例如:mysql-bin.000001) Position:文件位置(例如:439)
注:上面SQL的作用是查看Master的状态,执行完此SQL后不要再执行任何操作
配置-从库Slave
6.第一步:修改Mysql数据库的配置文件vi /etc/my.cnf
[mysqld]
server-id=101 #[必须]服务器唯一ID
7.第二步:重启Mysql服务
systemctl restart mysqld
8.第三步:登录Mysql数据库,执行下面SQL
a:登录
mysql -uroot -proot
b:执行下面SQL 【不是直接把这句话拷贝过去执行,要记得修改内容】
change master to master_host='192.168.188.188',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000001',master_log_pos=593;
c:启动从库
start slave;
9.第四步:登录Mysql数据库,执行下面SQL
a:查看从数据库的状态
show slave status\G; 使用列形式打印
b:把这个文件改名,然后重启mysql即可,mysql会重新生成这个文件以及uuid值
mv /var/lib/mysql/auto.cnf /var/lib/mysql/auto.cnf.bak
c:重启Mysql服务
systemctl restart mysqld
10.测试
在主库Master执行操作,查看从库Slave中是否将数据同步过去即可。
11.如果从库同步出错,可以尝试下面方法
stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;
show slave status\G;