配置主从同步的基本步骤:
1.在主服务器上,必须开启二进制日志机制和配置一个独立的ID
2.在每一个从服务器上,配置一个唯一的ID,创建一个用来专门复制主服务器数据的账号
3.在开始复制进程前,在主服务器上记录二进制文件的位置信息
4.如果在开始复制之前,数据库中已经有数据,就必须先创建一个数据快照(可以使用mysqldump导出数据库,或者直接复制数据文件)
5.配置从服务器要连接的主服务器的IP地址和登陆授权,二进制日志文件名和位置
一、主服务器配置
1、检查是否开启bin_log
show variables like '%log_bin%'
2、编辑设置mysqld的配置文件my.cnf,设置log_bin和server-id
log_bin可以直接配置成mysql-bin.log
根据需求还可以配置如下字段
log_slave_updates=1
binlog-do-db=db_name
binlog-ignore-db=mysql
binlog_format=ROW
改完后,重启数据库:service mysql restart
3、导出当前数据快照
(1)导出所有数据库:
mysqldump -uroot -proot --all-databases --lock-all-tables > all_master_db.sql
(2)导出制定数据库(wwpdb):
mysqldump -uroot -proot wwpdb --lock-all-tables > one_db.sql
4、创建用于数据同步的数据库账号
create user 'slave'@'%' IDENTIFIED by 'slave2020'
grant replication slave on *.* to 'slave'@'%'
FLUSH PRIVILEGES
或者
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by 'slave2020'
FLUSH PRIVILEGES
5、获取主服务器的二进制日志信息
SHOW MASTER STATUS

注意:File为使用的日志文件名字,Position为使用的文件位置,这两个参数须记下,配置从服务器时会用到
二、从机配置
1、导入主服务器数据库数据快照
mysql -uroot -proot wwpdb < one_db.sql
2、配置文件配置
编辑my.ini文件,将server-id修改为2,并保存退出
3、重启mysql服务
service mysql restart
4、进入mysql,设置连接到master主服务器
change master to master_host='10.10.10.195', master_user='slave', master_password='slave2020',master_log_file='mysql-bin.000001', master_log_pos=590
5、开启同步
start slave
6、查看同步状态
show slave status \G
7、查看relaylog参数:
mysql> show variables like '%relay%'
1.relay_log_recovery:当slave从库宕机后,假如relay-log损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的relay-log,并且重新从master上获取日志,这样就保证了relay-log的完整性。默认情况下该功能是关闭的,将relay_log_recovery的值设置为 1时,可在slave从库上开启该功能,建议开启。
2.relay_log_space_limit:防止中继日志写满磁盘,这里设置中继日志最大限额。但此设置存在主库崩溃,从库中继日志不全的情况,不到万不得已,不推荐使用;
三、断网重新配置
1、在从服务器停止同步
stop slave
2、在从服务器重置同步
reset slave
3、在主服务器查询bin_log信息
SHOW MASTER STATUS
4、在从服务器上修改bin_log信息
change master to MASTER_HOST='10.10.10.195',MASTER_PORT=3306,MASTER_USER='slave',MASTER_PASSWORD='slave2020',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=590
5、在从机上启动同步
start slave
四、常用命令
1、通过如下命令可以查看当前binlog事件:
mysql> show binlog events
2、查看relaylog的事件:
mysql> show relaylog events
3、查看slave_relay_log_info与slave_master_info当前的存储方式
slave_relay_log_info和slave_master_info分别为relaylog-info和master-info信息。relaylog-info和master-info信息可以使用FILE或这TABLE存储。relaylog-info有三种形式,分为为FILE、TABLE、DUMMY。通过relay_log_info_repository和master_info_repository可以得知relaylog-info和master-info是用什么形式存储:
show variables like 'master_info_repository'
show variables like 'relay_log_info_repository'
4、windows的mysql数据库默认文件夹位置
(1)安装目录:C:\Program Files\MySQL\MySQL Server 8.0
(2)配置、数据目录(默认是隐藏文件):C:\ProgramData\MySQL\MySQL Server 8.0
5、centos7的mysql数据库默认文件夹位置
配置文件:/etc/my.cnf
6、查看连接重试次数的限制配置
show variables like 'connection_control%'