实战项目——mysql主从架构的实现

一主一从 1.1 环境准备:

  centos系统服务器2台、 一台用户做Mysql主服务器, 一台用于做Mysql从服务器, 配置好yum源、 防火墙关闭、 各节点时钟服务同步、 各节点之间可以通过主机名互相通信

1.2 准备步骤:

1)iptables -F && setenforce 清空防火墙策略,关闭selinux
2)拿两台服务器都使用yum方式安装Mysql服务, 要求版本一致
3)分别启动两台服务器mysql服务, 确保服务正常
  架构图:

实战项目——mysql主从架构的实现

1.3 实现步骤: 1.3.1 配置master主服务器

  对master进行配置,包括打开二进制日志,指定唯一的servr ID。例如,在配置文件加入如下值

server-id=1      //配置server-id,让主服务器有唯一ID号 log-bin=mysql-bin  //打开Mysql日志,日志格式为二进制 skip-name-resolve  //关闭名称解析,(非必须)

实战项目——mysql主从架构的实现

1.3.2 创建复制帐号

  在 Master 的数据库中建立一个备份帐户:每个 slave 使用标准的 MySQL 用户名和密码连接 master 。进行复制操作的用户会授予 REPLICATION SLAVE 权限。

MariaDB [(none)]> grant replication slave,replication client on *.* to slave@'192.168.%.%' identified by 'keer'; 1.3.3 查看主服务器状态

  在 Master 的数据库执行 show master status,查看主服务器二进制日志状态及位置号。

实战项目——mysql主从架构的实现

1.3.4 配置slave从服务器

  对 slave 进行配置,打开中继日志,指定唯一的 servr ID,设置只读权限。在配置文件加入如下值:

server-id=2 //配置server-id,让从服务器有唯一ID号 relay_log = mysql-relay-bin //打开Mysql日志,日志格式为二进制 read_only = 1 //设置只读权限 log_bin = mysql-bin //开启从服务器二进制日志 log_slave_updates = 1 //使得更新的数据写进二进制日志中

实战项目——mysql主从架构的实现

1.3.5 启动从服务器复制线程

  让 slave 连接 master ,并开始重做 master 二进制日志中的事件。

MariaDB [(none)]> change master to master_host='192.168.37.111', >master_user='slave', >master_password='keer', >master_log_file='mysql-bin.000001', >master_log_pos=413;

  执行start slave;,来启动复制线程。
  

1.3.6 查看从服务器状态

  可使用SHOW SLAVE STATUS\G;查看从服务器状态,如下所示,也可用show processlist \G;查看当前复制状态:

Slave_IO_Running: Yes //IO线程正常运行 Slave_SQL_Running: Yes //SQL线程正常运行

实战项目——mysql主从架构的实现

1.3.7 测试

1)测试主从同步
  我们在 master 服务器上创建一个数据库,再使用该数据库创建一个表,添加一条记录,来看一看 slave 服务器有没有同步成功。
  首先,我们先来查看一下两个服务器上有什么数据库:
  master:

实战项目——mysql主从架构的实现


  slave:

实战项目——mysql主从架构的实现


  现在,我们在主服务器上创建一个数据库“keer”:

实战项目——mysql主从架构的实现


  然后,我们来看看从服务器是否已经更新:

实战项目——mysql主从架构的实现


  我们可以看出,数据库已经同步,接下来,我们就来创建表,并在表中插入一条记录:

实战项目——mysql主从架构的实现


  然后,我们来看看从服务器是否更新:

实战项目——mysql主从架构的实现

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxjzx.html