mysql数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库中。实现mysql数据库的热备份。
主库
#数据库的id这个应该默认是1就不用改动
server-id=1
#日志文件的名称,这里可以制定日志到别的目录 如果没有设置则默认主机名的一个日志名称
log-bin=mysql_binary_log
#记录日志的数据库
binlog-do-db=example
#然后重启mysql
c:\mysql\bin\mysql restart
#在master上增加一个同步的用户名
mysql> GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';
#如果mysql版本在4.0.2以前的版本请用
mysql> GRANT FILE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';
mysql> USE example;
#锁定要同步的test表,然后导出数据结构
mysql> FLUSH TABLES WITH READ LOCK;
#执行如下命令查看master的状态
mysql> SHOW MASTER STATUS;
#接下来备份要同步数据库(为导入slave作准备)
$ mysqldump example > example.sql
#已做好同步数据库结构导出后,解锁这个表
mysql> UNLOCK TABLES;
从库
mysql example < example.sql
#修改slave的my.ini
####################
log-bin=c:\mysql\logs\mysql_binary_log
server-id=2
#master的IP
master-host=192.168.1.156
#master上作为同步用的用户名
master-user=backup
#同步用户名的密码
master-password=123456
#设置同步的时间
master-connect-retry=60
#需要同步的数据库
replicate-do-db=example
####################
#重新启用mysql
c:\mysql\bin\mysql restart
#进入slave的mysql,对mysql进行操作
mysql> stop slave; #停止slave服务器
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.1.156',
-> MASTER_USER='backup',
-> MASTER_PASSWORD='123456',
-> MASTER_LOG_FILE='mysql_binary_log.00004',
-> MASTER_LOG_POS=98;
#开启slave服务器就可以同步了
mysql> START SLAVE;
问题是:MASTER_HOST='192.168.1.156' ,这个地方可不可以在slave服务器上指定多个MASTER_HOST 呢?
主库
#数据库的id这个应该默认是1就不用改动
server-id=1
#日志文件的名称,这里可以制定日志到别的目录 如果没有设置则默认主机名的一个日志名称
log-bin=mysql_binary_log
#记录日志的数据库
binlog-do-db=example
#然后重启mysql
c:\mysql\bin\mysql restart
#在master上增加一个同步的用户名
mysql> GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';
#如果mysql版本在4.0.2以前的版本请用
mysql> GRANT FILE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';
mysql> USE example;
#锁定要同步的test表,然后导出数据结构
mysql> FLUSH TABLES WITH READ LOCK;
#执行如下命令查看master的状态
mysql> SHOW MASTER STATUS;
#接下来备份要同步数据库(为导入slave作准备)
$ mysqldump example > example.sql
#已做好同步数据库结构导出后,解锁这个表
mysql> UNLOCK TABLES;
从库
mysql example < example.sql
#修改slave的my.ini
####################
log-bin=c:\mysql\logs\mysql_binary_log
server-id=2
#master的IP
master-host=192.168.1.156
#master上作为同步用的用户名
master-user=backup
#同步用户名的密码
master-password=123456
#设置同步的时间
master-connect-retry=60
#需要同步的数据库
replicate-do-db=example
####################
#重新启用mysql
c:\mysql\bin\mysql restart
#进入slave的mysql,对mysql进行操作
mysql> stop slave; #停止slave服务器
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.1.156',
-> MASTER_USER='backup',
-> MASTER_PASSWORD='123456',
-> MASTER_LOG_FILE='mysql_binary_log.00004',
-> MASTER_LOG_POS=98;
#开启slave服务器就可以同步了
mysql> START SLAVE;
问题是:MASTER_HOST='192.168.1.156' ,这个地方可不可以在slave服务器上指定多个MASTER_HOST 呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货