SpringBoot第12讲:SpringBoot+MySQL主从复制、读写分离⼀、MySQL主从复制(CentOS7+MySQL5.7)
1.1、主从复制的原理
1.2、数据库信息
10.211.55.4:主库master
10.211.55.5:从库slave
10.211.55.6:从库slave
1.3、启动/停⽌
service mysqld start|stop|restart
systemctl start|stop|restart mysqld
1.4.2、编辑/etc/myf⽂件,在[mysqld]下增加如下两⾏设置log-bin=mysql-bin # ⾮必需
server-id=1 # 必需
1.4.3、创建⽤于数据同步的账户
1.4.3.1、启动MySQL
1.4.3.2、登录MySQL客户端
1.4.3.3、依次执⾏命令
CREATE USER 'repl’@’10.211.55.%’ IDENTIFIED BY ‘Aa123123.’;
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'10.211.55.%';
FLUSH PRIVILEGES;
1.4.4、查看主库master状态
show variables like ‘log_bin%’;
show master status;
Ps:这⾥需要记住File和Position字段的值,在从库的设置中会⽤到
1.5.2、编辑/etc/myf⽂件,在[mysqld]下增加如下设置server-id
server-id=2
1.5.3、执⾏同步语句,并启动slave
1.5.3.1、启动MySQL、登录MySQL
1.5.3.2、执⾏命令springboot aop
change master to master_host='10.211.55.4', master_user='repl', master_password=‘Aa123123.’,
master_log_file='mysql-bin.000001', master_log_pos=767;
1.5.4、修改从库UUID
Ps:由于两个从库的Linux服务器是从主库Linux服务器克隆来的,所以会导致主库和2个从库的MySQL数据库的UUID相同,这时我们需要修改2个从库的UUID否则从库slave_io_runnint值⼀致为no;只要保证3个数据库UUID值不⼀样就⾏
vi /var/lib/mysql/autof
1.5.5、查看从库slave状态
1.5.5.1、重启mysql,再次登录MySQL
1.5.5.2、查看从库状态
show slave status\G
1.5.6、设置从库为只读账户
登录MySQL客户端
create user ‘pig’@‘%’ identified by ‘Aa123123.’;
grant select on test.* to ‘pig’@‘%’
flush privileges;
⼆、MySQL主从复制容易出现的问题
当我们配置好主从同步后,如果重启服务器或者其他原因导致服务器宕机,则数据将⽆法同步,以下两种情况最常见 2.1、Slave_SQL_Running:No
负责⾃⼰的slave mysql进程,⽤于update数据
解决办法如下,进⼊mysql客户端,依次执⾏命令:
stop slave;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
start slave;
show slave status\G
⾄此,问题解决
2.2、Slave_IO_Running:No
负责与主机(master)的io通信
2.2.1、问题1:UUIDs相同
由于两台从服务器(slave)是通过主服务器(master)克隆来的,所以三台机器安装MySQL的UUIDs是相同的,我们需要修改两台从服务器(slave)的UUIDs的值,让3台服务器的UUID值都不相同
解决办法:修改从库UUIDs
vi /var/lib/mysql/autof
2.2.2、问题2:主从⽇志⽂件mysql-bin不对应
解决办法如下,进⼊mysql客户端:
2.2.2.1、查看主服务器(master)
show master status\G
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论