mysql具体安装步骤参考上篇文章,下面开始mysql的主从复制搭建。
主从模式适应场景
MySQL主从模式是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,从节点可以复制主数据库中的所有数据库,或者特定的数据库,或者特定的表。
一,首先对master的配置文件my.cf进行配置(/etc目录下)
修改配置
修改完配置重新启动 systenctl restart mysqld
重新登陆mysql
授权操作,主库给从库授权
grant replication slave on *.* to 'root'@'%' identified by 'root';
grant all privileges on *.* to 'root'@'%' identified by 'root';
刷新权限
flush privileges;
查看主库状态
show master status;
二,配置slave
重启slave,登陆mysql,查看从节点状态,应该是什么都不显示如果有显示表示之前启用过,应该关闭stop slave。
同步初始化配置命令(里边部分数据在show master slave里)
change master to master_host='192.168.159.139',master_port=3306,master_user='root',master_password='root',master_log_file='mysql-bin.000002',master_log_pos=869;
start slave
show slave status;
数据比较多,如果想查看竖版的可以在命令后边加上‘’\G‘’
去主节点master上创建一个表user
去slave节点查看,内容已经同步
主从配置成功。
三,slave扩展(一主多备)
如果一主一从运行了一段时间了,不够用需要再加slave节点。如何同步数据。
可以使用mysqldump命令,将master上的文件下载下来,然后去新加入的slave节点去运行。
是否支持动态安装
select @@have_dynamic_loading;
查看插件 show plugins;
四,半从库复制
master安装插件修改数据
install plugin rpl_semi_sync_master soname 'semisync_master.so';
show variables like '%semi%';
set global rpl_semi_sync_master_enabled=1
set global rpl_semi_sync_master_timeout=1000;
install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
set global rpl_semi_sync_slave_enabled=1;
stop slave;
start slave;
查看日志/var/log/mysql.log。证明半同步复制实现
五,并行复制
show variables like '%binlog_group%';
#delay 延迟
set binlog_group_commit_sync_delay=1000;
#每个组里有多少事务数
set global binlog_group_commit_sync_no_delay_count =100;
5.7 引入了新的变量slave-parallel-type,其可以配置的值有:DATABASE(默认值,基于库的并行复制方式)、LOGICAL_CLOCK(基于组提交的并行复制方式)。
set global slave_parallel_type='LOGICAL_CLOCK';
线程数设置个4-8
set global slave_parallel_workers=8;
relay_log_recovery’无法用set命令更改,进入文件、etc/mysql.cng
有些用set设置的参数重启后可能会失效,配置文件中配置比较靠谱
systemctl restart mysqld
主库添加一条信息,从库查看
证明并行复制开始生效。