以前一直使用mysqldump+crontab的方式对MySQL数据库进行备份,这种方式用来对博客进行备份还是比较实用的,但是在备份VPN数据库这样实时性要求比较高的场合就显得不够用了,于是打算利用主从服务器进行备份。
主服务器的配置
修改主服务器的配置文件/etc/my.cnf
,在[mysqld]
段加入以下内容:
server-id=1
log-bin
binlog-do-db=''#需要备份的数据库
binlog-ignore-db=''#不需要备份的数据库
然后重启mysql服务
/etc/init.d/mysqld restart
打开mysql shell,执行命令
mysql > show master status;
查看当前二进制文件的文件名及偏移位置,并记录下File和Position的值
从服务器的配置
修改从服务器的配置文件/etc/my.cnf
,在[mysqld]
段加入以下内容`
server-id=2
master-host='主服务器IP地址'
master-user='主服务器的备份帐号'
master-pass='主服务器的备份密码'
master-port='3306'#主服务器端口
master-connect-retry=60 #
replicate-do-db=''#需要备份的数据库
replicate-ignore-db=‘’#不需要备份的数据库
将需要备份的数据库手动导入从服务器,然后重启mysql服务
/etc/init.d/mysqld restart
打开mysql shell,执行命令停止slave
mysql > stop slave;
接着,根据前面从主服务器上得到的二进制文件名以及偏移位置信息,设置从服务器
mysql > CHANGE MASTER TO
->MASTER_HOST='master_host_name',
->MASTER_USER='replication_user_name',
->MASTER_PASSWORD='replication_password',
->MASTER_LOG_FILE='recorded_log_file_name',
->MASTER_LOG_POS=recorded_log_position;
然后启动slave
mysql > start slave;
查看slave状态
mysql > show slave status\G;
这时候,如果显示
Slave_IO_Running: Yes
并且
Slave_SQL_Running: Yes
就说明已经配置成功
Leave a Comment