31 lines
1.7 KiB
Text
31 lines
1.7 KiB
Text
要求:
|
||
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
|