MySQL主从复制配置

新逸Cary 882 0

主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。

对于多级复制,数据库服务器即可充当主机,也可充当从机。MySQL主从复制的基础是主服务器对数据库修改记录二进制日志,从服务器通过主服务器的二进制日志自动执行更新。

MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的 二进制日志 功能。就是一台或多台MySQL数据库 从另一台MySQL数据库进行日志的复制,然后再解析日志并应用到自身,最终实现 从库 的数据和 主库 的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。

1、主服务器配置

[mysqld]
...
 
log_bin=mysql-bin
binlog_format=mixed
server_id=1
expire_logs_days=10
 
gtid_mode=ON
enforce_gtid_consistency=ON
log_slave_updates=ON
 
##不同步的数据库,可设置多个
#binlog-ignore-db=information_schema
#binlog-ignore-db=performance_schema
#binlog-ignore-db=mysql
##设置需要复制的数据库,默认全部记录
#binlog-do-db=test
CREATE USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY 'Slave@2022';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
flush privileges;
 
SHOW MASTER STATUS;

2、从服务器配置

[mysqld]
...
 
#log_bin=mysql-bin
#binlog_format=mixed
server_id=2
expire_logs_days=10
 
gtid_mode=ON
enforce_gtid_consistency=ON
log_slave_updates=ON
slave_skip_errors=all
 
##不同步的数据库,可设置多个,要和主服务器一致
#replicate-ignore-db=information_schema
#replicate-ignore-db=performance_schema
#replicate-ignore-db=mysql
##设置需要复制的数据库,默认全部记录
#replicate-do-db=test
 
#slave-skip-errors=1062,1053,1146 #跳过指定error no类型的错误
#slave-skip-errors=all #跳过所有错误
##配置同步,注意 master_log_file 和 master_log_pos 的值要与Master查询的一致
change master to master_host='10.0.0.100',master_port=3306,master_user='slave',master_password='Slave@2022',master_log_file='mysql-bin.000002',master_log_pos=519;
 
##启动同步,如有报错执行 reset slave;
start slave;
# stop slave;
##查看 Slave 状态
show slave status\G;
 
##确保 IO 和 SQL 线程都是 Yes,代表同步正常。
Slave_IO_Running: Yes				#负责与主机的io通信
Slave_SQL_Running: Yes    #负责自己的slave mysql进程

 

注意:最好在创建数据库之前配置主从同步,发送给主服务器的SQL会同时发送给从服务器,数据库不存在或数据不一致时再配置主从同步肯定会出错的。


本文链接:https://www.xinac.com/article/767.html

原文链接:https://www.xinac.net/9281.html


 

发表评论 取消回复
表情 图片 链接 代码

分享