逆水行舟 —— MySQL主从复制

Posted msi-chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逆水行舟 —— MySQL主从复制相关的知识,希望对你有一定的参考价值。

mysql主从复制

首先我们说说主从复制的原理,这个是必须要理解的玩意儿:

理解:  技术图片

  • MySQL之间的数据复制的基础就是二进制日志文件bin log ,Master的所有操作都会纪录在二进制日志文件中,其他MySQL通过一个IO线程与其进行通信,监控这个日志文件的变化,并将变化赋值到Slave的中继日志relay中,然后SQL线程会执行中继日志中的相关操作,以此实现主从数据库的一致性,也就是主从复制

主从搭建,配置 Master

准备材料如下:

  • 分别装在两台Linux服务器上的数据库

  • master:192.168.159.159

  • slave : 192.168.159.169

master数据库配置文件修改:my.cnf

各自的安装方式不一样,我是通过rpm方式安装的,

在这里扩展一下: 通过这两个命令,大致发现了我的MySQL的安装目录

  技术图片

当然我的配置文件在在 /etc/mysql/my.cnf 在[mysqld]段下添加如下内容

log-bin=mysql-bin

server-id=159

  技术图片

然后重启Mysql: service mysqld restart

登录到MySQL建立账户并授权给Slave

mysql> CREATE USER ‘chen‘@‘192.168.159.169‘ IDENTIFIED BY ‘chen‘;  #创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘192.168.159.169‘; #为其权限
mysql>flush privileges;   #刷新权限

  技术图片

然后查看master状态,记录二进制文技术图片件名( mysql-bin.000002 ) 和位置(787)

  技术图片

Master 到这里就配置完成了,下面配置 Slave

第一步修改从服务器的配置文件 : my.conf : server-id=135

  技术图片

第二步删除UUID文件: /var/lib/mysql/auto.cnf 后重新启动服务

第三步登入MySQL,进行从服务器的配置 ,并开启从服务器复制功能

  • change master to master_host=‘192.168.159.159‘,master_port=3306,master_user=‘chen‘,master_password=‘chen‘,master_log_file=‘mysql-bin.000002‘,master_log_pos=787;

  • 开启从服务器的复制功能 : start slave;

技术图片

  技术图片

检查从服务器的复制功能状态:show slave status

  技术图片

技术图片下面就可以开始测试 ,测试就不写具体得了,在主服务器中增加或者修改一个数据,然后我们在从服务器中查询看是否做到数据一致即可

以上是关于逆水行舟 —— MySQL主从复制的主要内容,如果未能解决你的问题,请参考以下文章

MySQL主从复制与读写分离配置及实操

MySQL 主从复制与读写分离(原理深刻,过程详细,值得一看)

MySQL主从复制与读写分离

MySQL主从复制及读写分离实际部署与验证

MySQL主从复制及读写分离实际部署与验证

mysql实现主从复制/主从同步