Docs/数据库/mysql/简单mysql主从复制
2022-10-18 16:59:37 +08:00

31 lines
1.7 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

要求:
1、主从mysql版本要一致
2、若版本不一致主版本要低于从
3、从头开始或主服务器数据备份从服务器恢复数据并从主备份所在位置进行服务
注意(都需要启动):
1、时间需要同步
2、配置文件
my.cnf
修改二进制日志存放位置安全log-bin=目录/文件
修改二进制文件的格式为binlog_format=mixed
修改服务id server-id=1
my.cnf
要从主服务器复制二进制日志所以从的二进制文件要关闭log-bin=OFF或注释掉
修改服务id与主服务器不同如 server-id=11
添加复制日志relay-log=目录/文件
只读read-only=on(仅限制不具备super权限用户无法执行的写操作)
3、主从复制的事务安全
在主服务器上配置sync_binlog=1(事务提交即同步)
1、主服务器执行创建一个有复制权限的用户并授权
grant replication slave, replication client on *.* to 'rep'@'从ip地址' identified by 'reppass';
flush plivileges;
2、备份主服务器上数据需要包含position信息在导出的数据文件头部
备份InnoDB存储引擎的数据库mysqldump --all-database --single-transaction -flush-logs --master-data=2 > 数据文件
备份MyISAM存储引擎的数据库mysqldump --all-database --lock-all-tables -flush-logs --master-data=2 > 数据文件
3、从服务器执行连接主服务器
change master to MASTER_HOST='主服务器ip' MASTER_USER='主服务器用户' MASTER_PASSWORD='密码' MASTER_PORT='端口' MASTER_LOG_FILE='主服务器二进制文件' MASTER_LOG_POS=从主服务器二进制文件位置读取
4、从服务器启动slave执行
start slave