1.3.1 配置master主服务器
1.3.2 创建复制帐号
1.3.3 查看主服务器状态
1.3.4 配置slave从服务器
1.3.5 启动从服务器复制线程
1.3.6 查看从服务器状态
1.3.7 测试
1.4 扩展——实现一主多从
1.4.1 需求分析
1.4.2 具体实现过程
1.5 扩展——实现半同步复制
1.5.1 三种复制方式
1.5.2 实现半同步复制
互为主从(双主)
2.1 环境准备:
2.2 准备步骤:
2.3 实现步骤:
2.3.1 配置第一台 master 主服务器
2.3.2 配置第二台 master 主服务器
2.3.3 创建复制账号
2.3.4 查看服务器状态
2.3.5 启动复制线程
2.3.5 测试
高可用架构MHA的实现
正文
一主一从 1.1 环境准备:CentOS系统服务器2台、 一台用户做MySQL主服务器, 一台用于做MySQL从服务器, 配置好yum源、 防火墙关闭、 各节点时钟服务同步、 各节点之间可以通过主机名互相通信。
1.2 准备步骤:1)iptables -F && setenforce 清空防火墙策略,关闭selinux
2)拿两台服务器都使用yum方式安装Mysql服务, 要求版本一致
3)分别启动两台服务器mysql服务, 确保服务正常
架构图:
对master进行配置,包括打开二进制日志,指定唯一的servr ID。例如,在配置文件加入如下值
server-id=1 //配置server-id,让主服务器有唯一ID号 log-bin=mysql-bin //打开Mysql日志,日志格式为二进制 skip-name-resolve //关闭名称解析,(非必须) 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,查看主服务器二进制日志状态及位置号。
对 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 //使得更新的数据写进二进制日志中 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;,来启动复制线程。
可使用SHOW SLAVE STATUS\G;查看从服务器状态,如下所示,也可用show processlist \G;查看当前复制状态:
Slave_IO_Running: Yes //IO线程正常运行 Slave_SQL_Running: Yes //SQL线程正常运行 1.3.7 测试1)测试主从同步
我们在 master 服务器上创建一个数据库,再使用该数据库创建一个表,添加一条记录,来看一看 slave 服务器有没有同步成功。
首先,我们先来查看一下两个服务器上有什么数据库:
master:
slave:
现在,我们在主服务器上创建一个数据库“keer”:
然后,我们来看看从服务器是否已经更新:
我们可以看出,数据库已经同步,接下来,我们就来创建表,并在表中插入一条记录:
然后,我们来看看从服务器是否更新: