主机操作
修改配置文件
通常位于 /etc/mysql/mysql.conf.d/mysqld.cnf
或 /etc/my.cnf
#master端的id号,不唯一即可
server-id=1
#同步的日志路径及文件名,一定注意这个目录要是mysql有权限写入的
log-bin=mysql-bin
#指定同步的数据库,如果不写,默认是同步所有数据库
binlog-do-db=数据库
#指定不同步的数据库
binlog-ignore-db=mysql
#binlog日志的保留时间
expire_logs_days=7
#指定binlog日志的格式
#binlog_format=ROW
binlog_format=MIXED
#8.4版本需要启用本插件
#https://dev.mysql.com/doc/refman/8.4/en/native-pluggable-authentication.html
mysql_native_password=ON
重启服务
systemctl restart mysql
创建用户并授权
CREATE USER 'slave'@'从数据库IP地址' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'从数据库IP地址';
FLUSH PRIVILEGES;
查询主服务器当前二进制日志名和偏移量
#SHOW MASTER STATUS;
#8.4版本
SHOW BINARY LOG STATUS;
记下 File
和 Position
的值,稍后在备份服务器配置时将需要它们
复制主服务器数据库到从服务器上
从机操作
修改配置文件
#slave端的id号,不唯一即可
server-id=2
#同步的日志路径及文件名,一定注意这个目录要是mysql有权限写入的
log-bin=mysql-bin
#复制哪个库,可以不用填写
replicate-do-db=db1
replicate-do-db=db2
#不复制哪个库
replicate-ignore-db=mysql,information_schema,performance_schema
#这两个是启用relaylog的自动修复功能,避免由于网络之类的外因造成日志损坏,主从停止,保证数据写入的一致性
master_info_repository=table
relay_log_info_repository=table
重启服务
systemctl restart mysql
配置备份服务器连接到主服务器
CHANGE MASTER TO MASTER_HOST='主数据库IP地址',
MASTER_PORT=3306,
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='binlog.000005',
MASTER_LOG_POS=1240;
注:MASTER_LOG_FILE和MASTER_LOG_POS的值为master节点中执行show master status查询到的信息
启动备份服务器上的数据同步进程
start slave;
重新启动
STOP SLAVE;
RESET SLAVE;
CHANGE MASTER TO MASTER_HOST='主数据库IP地址',
MASTER_PORT=3306,
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_AUTO_POSITION=1;
START SLAVE;
查看slave状态
show slave status\G;
确保 Slave_IO_Running
和 Slave_SQL_Running
的值为 Yes
,表明主备同步正在运行。
参考文章
mysql 主备模式搭建过程
MySQL主备操作以及原理详解
MySQL高可用之主备同步
ps
8.4版本相关命令
#https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-0.html
START SLAVE (START REPLICA);
STOP SLAVE (STOP REPLICA);
SHOW SLAVE STATUS (SHOW REPLICA STATUS);
SHOW SLAVE HOSTS (SHOW REPLICAS);
RESET SLAVE (RESET REPLICA);
CHANGE MASTER TO (CHANGE REPLICATION SOURCE TO);
RESET MASTER (RESET BINARY LOGS AND GTIDS);
SHOW MASTER STATUS (SHOW BINARY LOG STATUS);
PURGE MASTER LOGS (PURGE BINARY LOGS);
SHOW MASTER LOGS (SHOW BINARY LOGS);