MySQL互为主从复制以及主主互备

MySQL互为主从复制以及主主互备

2015/5/8 10:14:22

实验环境:

主机名 ip地址 操作系统 应用角色
mysql-master 192.168.1.87 Centos 6.6 Master
mysql-slave 192.168.1.198 Centos 6.6 Slave
192.168.1.50 VIP

软件版本:

软件名 软件版本
Mysql 5.1.73
Keepalived 1.2.12

一: 配置MySQL互为主从复制

1.安装MySQL服务

[root@mysql-master ~]# yum -y install mysql-server

2.修改mysql-master配置文件

#修改MySQL配置文件/etc/my.cnf,在"[mysqld]"段添加如下内容:
server-id = 1                                   #节点标识,主从节点不能相同,必须全局唯一。
log-bin=mysql-bin                               #开启MySQL的binlog日志功能,"mysql-bin"表示日志文件的命名格式,会生成如:"mysql-bin.xxxx"
relay-log = mysql-relay-bin                     #定义relay-log日志文件的命名格式。
#复制过滤选项,可以过滤不需要复制的数据库或表,如"mysql.%"表示不复制MySQL库下所有对象。
#于此对应的反选项,"replicate-wild-do-table"表示指定需要复制的数据库或表。
replicate-wild-ignore-table=mysql.% 
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%

3.修改mysql-slave配置文件

#修改MySQL配置文件/etc/my.cnf,在"[mysqld]"段添加如下内容:
server-id = 2
log-bin=mysql-bin
relay-log = mysql-relay-bin
replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%

4.手动同步数据库。

#如果master已经有MySQL数据,那么在主主互备之前,需要将master和slave俩个MySQL的数据进行同步,首先在master备份MySQL数据,执行如下SQL语句:
mysql>flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
#直接打包压缩或使用mysqldump工具导出数据,操作过程如下:
[root@mysql-master ~]# cd /var/lib/
[root@mysql-master lib]# tar zcvf mysql.tar.gz mysql
[root@mysql-master lib]# scp -r mysql.tar.gz mysql-slave:/var/lib/

5.依次重启master和slave上mysql服务

[root@mysql-master ~]# service mysqld restart
[root@mysql-slave ~]# service mysqld restart

6.创建复制用户并授权。

#在mysql-master上创建复制用户
mysql>grant replication slave on *.* to 'repl_user'@'192.168.1.198' identified by 'repl_passwd';
mysql>show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      262 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
#然后在mysql-slave的MySQL库中将master设为自己的主服务器,操作过程如下:
#注:"master_log_file"和"master_log_pos",这两个选项的值刚好是master上通过SQL语句"show master status;"查询到的结果
mysql> change master to \
    -> master_host='192.168.1.87',
    -> master_user='repl_user',
    -> master_password='repl_passwd',
    -> master_log_file='mysql-bin.000001',
    -> master_log_pos=262;
Query OK, 0 rows affected (0.07 sec)
#在mysql-slave启动slave服务,执行如下:
mysql>start slave;
Query OK, 0 rows affected (0.00 sec)
#在
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值