Mysql主从备份可以在除主服务器外的其他服务器是部署从库,用于实时备份生产环境数据,核心是mysql的log-bin日志(二进制日志),主库开启bin日志后,从库通过日志同步(Slave I/O)和回放(Slave SQL)实现数据同步.
因为设置主从备份时,需要指定主库lob-bin日志运行行数,所以之前的数据需要通过“数据同步”或者手动同步完成
修改配置文件
Linux: my.cnf
Windows: my.ini
修改主库mysql配置文件:
[mysqld]
… (省略基础配置)
server-id=1(mysql-id 主库id一般小于从库)
log-bin=mysql-bin(开启二进制日志)
binlog-do-db=test (需要生成日志的数据库,此处使用的是test数据库)
修改从库mysql配置文件:
[mysqld]
… (省略基础配置)
server-id=2(mysql-id 主库id一般小于从库 多个从库时id不能重复)
log-bin=mysql-bin(开启二进制日志)
replicate-do-db=test (需要主从备份的数据库,此处使用的是test数据库)
修改配置文件需要重启mysql服务生效
创建备份用户
因为安全策略问题,mysql的root用户一般会限制ip,如果从库服务器能使用root账户连接主库则无需创建用户。
在主库创建一个主从备份用户:
grant replication slave on *.* to 'userName'@'从库服务器ip' identified by 'passWord';
或者:
grant replication slave on *.* to 'userName'@'%' identified by 'passWord';
创建完成后刷新权限
flush privileges;
检查主库是否开启主从备份
在主库运行命令:
show master status;
出现如下图则开启成功(下图为Navicat 命令窗口截图):
设置从库备份
在从库先运行停止备份命令:
stop slave;
运行主从备份配置命令:
Change master to master_host='127.0.0.1',master_port=3306,master_user='backUp',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=713;
参数说明:
master_host 主库服务器ip
master_port 主库端口
master_user 主库备份用户名
master_password主库备份用户密码
master_log_file主库bin-log日志名称(步骤三可查看)
master_log_pos主库现存sql数(步骤三可查看)
设置完成后,运行命令启动主从备份:
start slave;
使用命令查看从库备份状态:
show slave status;
如下图表示同步正常(下图为Navicat 命令窗口截图)
同步异常时,会在下图处输出错误信息,请留心查看!!!(下图为Navicat 命令窗口截图)



