视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mysql主从备份、主从切换的例子_MySQL
2020-11-09 18:50:28 责编:小采
文档
 bitsCN.com

实现两个Mysql数据库的同步,分为主从模式和相互备份模式。

实施环境:

两台Linux机器

SerA ip:10.0.0.232

SerB ip:10.0.0.234

Demo1:主从模式

Master:SerA Slave:SerB

在SerA和SerB上分别建立用于同步的账号(也可以不新建账号,直接给其他账号分配访问权限)

[html] view plaincopy
  1. use mysql;
  2. delete from user;
  3. grant all privileges on *.* to '$username'@'%' identified by '$password' with grant option;
  4. flush privileges;
上面是为了安全,删除了一些用户(一般都要把默认的没有密码的用户删除)

StepA:

SerA配置为Master,在SerA上在my.cnf中添加:

[html] view plaincopy
  1. replicate-do-db=$database
  2. server-id=1
指定binlog(因为时通过binlog实现数据同步的)

配置完后重启数据库服务,用show master status可以看到Master信息。

StepB:

在SerB的my.cnf中指定

[html] view plaincopy
  1. replicate-do-db=$database
  2. server-id=2
指定binlog

配置完后重启数据库服务,用show slave status可以看到Slave信息。

(在MySQL5.1以后,my.cnf中已经去除了master-host等参数,应该在启动服务之后通过change master to ...命令来实现配置,也可以在启动的时候添加这些参数。下面是change master to ...示例)

bin/mysql -u$username -p$password -e "stop slave;change master tomaster_host='$mysqlMasterHost',master_port=3306,master_user=$username,master_password=$password;start slave;"

mysqlMasterHost是Master的IP,

master_port是Master的端口,

master_user和master_password是用于同步的账号和密码

还有master_log_file和master_log_pos参数指定同步数据的位置。

可以在mysql命令模式下执行change master,之后start slave

注意:由于设置了slave的配置信息,mysql在数据库目录下生成master.info

所以如有要修改相关slave的配置要先删除该文件。否则修改的配置不能生效。

这样就可以实现主从配置,此时在SerA指定数据库中加入数据,SerB中相应的数据库也会添加数据。

模拟Mysql主从切换:

假设SerA现在无法提供服务,只需在SerB上执行show master status记录master_log_file和master_log_pos,停止ServB的slave。

在SerA上执行change master 到SerB,并且指定master_log_file和master_log_pos,这样就可以恢复在SerA宕机期间存到SerB上的数据。

看一些配置和查看命令的结果:

注意Slave_IO_Running和Slave_SQL_Running的状态都必须是YES

Demo2:双机互备

双机互备只是两台机器同时做Master和Slave,

即在SerA上使它的Master指向SerB,SerB的Maser指向SerA,

配置其实和Mysql主从模式是一样的。

bitsCN.com

下载本文
显示全文
专题