mysql实现主从复制

一、简述

   两台服务器互为主从,在一台服务器上有更新操作(增删改)时,另一台服务器上的mysql同步到数据库也有相同的操作,需要利用mysql的主从同步的原理,实现mysql的双向同步。 在企业中的项目开发中会用到mysql的主从复制,为了实现数据实时备份,我们自己做小的项目的时候肯定没必要使用。

二、步骤

1、配置my.ini文件  (强烈建议使用两个相同版本的mysql,本人测试的是5.0.27)
   (1)server-id 标识   主从数据库设置的都不能相同
   (2)bin-log 数据库二进制文件的存储地址
   (3)binlog-do-db  需要同步的数据库
   (4)binlog-ignore-db  不需要同步的数据库
   (5)max_allowed_packet=20M

2、在两台服务器上的mysql中分别创建两个用户

在192.168.0.119上运行
grant replication slave on *.* to slaveuser@192.168.0.119 identified by '123456';

在192.168.0.50上运行
grant replication slave on *.* to slaveuser@192.168.0.50 identified by '123456';

注:等测试的时候你一定会想,这两个用户又不需要登录,并没有用到,但是为什么要创建这两个用户并赋予其一定的权限呢,我们的root是拥有所有的权限,真的是有点多此一举啊,其实不然,这个用户虽然不用登录,但是想过没,我们的二进制日志文件在主mysql中,将sql命令全部存在了配置文件中指定的第一个日志文件中,然后从mysql需要通过IO线程读取这个日志文件到从服务器的mysql中,然后使用sql线程进行操作。这个过程是谁实现的呢,毫无疑问是这个用户实现的。所以创建这个用户是有必要的。

3、设置主机并且启动从服务

在服务器server1:192.168.0.165上用MySQL命令行工具执行如下语句:

mysql> show master status;

得到的结果如下

+---------------------+------------+---------------------+--------------------------+
|              File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------------+------------+---------------------+--------------------------+
| mysql-bin.000020 |        107 |          ctbsdb       |             mysql            |
+---------------------+------------+---------------------+--------------------------+
1 row in set (0.00 sec)

再到服务器server2:192.168.0.50上打开mysql命令

mysql> stop slave;

mysql> change master to master_host='192.168.0.50',master_user='slaveuser',master_password='123456',master_port=3306,master_log_file='mysql-bin.000020',master_log_pos=107;

mysql> start slave;

mysql> show slave status\G

查看如下两项,得到的结果为Yes即表示正常。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

操作到此步即已完成两台服务器的主从同步,接下来是把server1(192.168.0.119)作为主,server2(192.168.0.50)作为从服务器来设置。

4、反过来重新执行第三部就ok了,就会将server1(192.168.0.50)作为主,server2(192.168.0.119)作为从服务器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值