MySql提供了基于日志的主从备份机制。
操作在Windows下进行。
一.设置主服务器
1.修改主机my.ini
server-id=1 #数据库id,默认1
log-bin=log_name #日志文件的名称,这里可以制定日志到别的目录 如果没有设置则默认主机名的一个日志名称
binlog-do-db=db_name #记录日志的数据库
binlog-ignore-db=db_name #不记录日志的数据库
2.为从机设置一个备份账户
mysql> GRANT REPLICATION SLAVE ON *.*
-> TO "backupUser"@"192.168.1.100" IDENTIFIED BY "password";
重启服务器。
3.锁定现有数据库并备份现有数据
锁定:
mysql> FLUSH TABLES WITH READ LOCK;
备份。备份完毕后,查看主服务器的状态
mysql> show master status;
+-----------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-----------------+----------+--------------+------------------+
| mysqlbackup.003 | 106 | test | manual,mysql |
+-----------------+----------+--------------+------------------+
记录File 和 Position 项目的值mysqlbackup.003和106。
打开数据库锁定:
mysql> UNLOCK TABLES;
二.设置从服务器
1.修改从机my.ini
server-id=n //设置数据库id,可以随便设置。但不能重复
master-host=192.168.1.100 //主服务器的IP地址或者域名
master-port=3306 //主数据库的端口号
master-user=backupUser //同步数据库的用户
master-password=123456789 //同步数据库的密码
master-connect-retry=60 //如果从服务器发现主服务器断掉,重新连接的时间差
2.导入主机备份的数据库
3.重启从机服务器
4.停止slave的服务
mysql> slave stop;
5.在从机上设置主服务器的参数
mysql> CHANGE MASTER TO
-> MASTER_HOST="192.168.1.100", //主服务器的IP地址
-> MASTER_USER="backupUser", //同步数据库的用户
-> MASTER_PASSWORD="123456789", //同步数据库的密码
-> MASTER_LOG_FILE="mysqlbackup.003", //主服务器二进制日志的文件名(前面要求记住的参数)
-> MASTER_LOG_POS=106; //日志文件的开始位置(前面要求记住的参数)
6.启动同步数据库的线程
mysql> slave start;
到此,就设置成功了。
查看从服务器上进程信息
mysql-> show processlist;
如果在一大堆参数中可以看到两个YES,那就成功了。
在主机更改数据,从机数据立即随之改变。