mysql主从复制详细解说

设置master的配置文件:

vim /etc/my.cnf

在mysqlid最下方添加服务的id:server_id,注意,每个mysql的id必须唯一。

启动mysql的日志:log-bin=mysql-bin

然后重启mysql服务:service mysqld restart

重启服务后,进入mysql,进入master的mysql后,需要创建一个数据库和一张表,最好往表里添加一条数据。添加完成后,在开始设置主从的设置:

开始需要创建一个用户,并且设置其密码:

create user 'repl'@'192.168.65.128' identified by '123456';

但是出现错误,错误的意思是密码不符合规范,这个在上一篇博客中提到过,可以修改密码的规范,然后再重新设置密码。如图:

这样,用户就创建成功了,然后再需要给这个用户分配权限:

grant replication slave on *.* to 'repl'@'192.168.65.128';

分配成功后需要刷新权限,如图:

这样,主服务器的配置就基本上完成了,然后在查看主服务器的master:

这里的file和position在slave的配置中还会用到。

这里的file和position我的理解是标志着每一个master的log文件位置以及数据库每次变更的position。我做过好几次实验,发现其实每次修改了数据库的话,这里的position都会改变,如果从库开始同步的位置为某一个position,则数据库在之前的position的数据都是无法进行同步的。比如数据库test里有一张表user(id,name,password),当position为932的时候,我插入了一条数据(1,'ads','dsfs),然后position变为了另外一个数,假设为1032,name从库如果这个时候开始同步主库的话,设置的master-log_pos=1032的话,那么插入的这一条数据是无法同步到从库的,只有设置为932的时候,从库才可以同步这条数据。下面的测试是在主库的master形成之前就创建了一张表并且插入了一条数据,所以从库从932起点开始同步就可以同步到该表和表里的数据。

主从复制的过程中,从服务器需要连接到主服务器的数据库,因此需要打开主服务器的3306端口。

修改/etc/sysconfig/iptables,如果该目录下没有iptables,可参考这篇博客解决:

https://blog.csdn.net/a837201942/article/details/76690916

就是先关掉iptables,然后在更新iptables,这样就有了iptables,然后再修改iptables,使防火墙开放3306端口,再重启iptables。如图:

这样,从服务器就可以连接到主服务器的数据库了,至此,数据库的master配置就彻底完成了。

 

配置从数据库:

从数据库依然要设置id,修改/etc/my.cnf,添加server_id。

进入数据库,创建一个数据库,名字和master数据库中需要同步的数据库的名字一样,然后再执行同步SQL语句:

然后开启slave,并且展示slave 的状态:

当master的3306端口没有开放的时候,状态中的Slave_IO_Running和Slave_SQL_Running分别为:

当3306端口打开后:

说明slave和master已经建立了联系,或者说建立了同步,下面就可以测试一下。

我们开始的时候在slave的数据库中只是建立了一个test数据库,并没有创建表,但是我们可以在slave的test数据库中查看下表:

 

slave中的test数据库已经有了一个user表,并且有一条在master中插入的数据,可以在master中再插入一条数据,然后在slave中查询:

可以看到master插入后再查询slave,发现master插入的数据从库依然可以读到,这样就基本实现了mysql的的主从复制。

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值