MySQL主从备份配置实例
场景:
1、主服务器192.168.0.225、从服务器192.168.0.226。其中,主服务器上已有数据。
2、主从服务器上的mysql版本及安装配置相同。
一、主从备份的原理:
主服务器数据库的每次操作都会记录在二进制日志文件mysql-bin.xxx中。从服务器的I/O线程使用专用帐号登陆到主服务器中读取该二进制 文件,并将文件内容写入到自己本地的中继日志relay-log文件中。然后从服务器的SQL线程会根据中继日志中的内容执行SQL语句。
这要求两台服务器有同样的初态。
二、同步初态:
1、将主服务器要同步的数据库加锁,避免同步时发生改变:
>use database_name;
>flush tables with read lock;
2、使用mysqldump工具导出数据:
mysqldump -uroot -pxxx database_name >database_name.sql
3、备份完成后,解锁数据库:
>unlock tables;
4、将初始数据导入从数据库:
>create database database_name;
>use database_name;
>source database_name.sql;
完成以上操作后,主从服务器就有一样的初态了。
三、主从同步设置:
1、配置从数据库:
/etc/my.cnf主要配置如下:
log-bin=mysql-bin #开启二进制日志
server-id = 2 #主数据库id为1,不能相同。
replicate_wild_do_table=test.% #只同步test库下的表
relay_log=mysqld-relay-bin #记录中继日志
log-slave-updates=YES #从服务器同步后记录日志
修改完成后重启mysql服务。
2、查看主服务器日记记录位置:
>show master status\G
显示内容如下: