要求: 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