Mysql一主多从部署

环境准备

centos7版本以

cat /etc/redhat-release

内核3.10版本以上

uname -r
机器名称 IP配置 服务器角色 备注
Master 10.0.0.42 数据库主服务器 开启bin-log relay-log 关闭 relay_log_purge
Slave1 10.0.0.43 数据库从服务器 开启bin-log relay-log 关闭 relay_log_purge
Slave2 10.0.0.44 数据库从服务器 开启bin-log relay-log 关闭 relay_log_purge
  1. 三台服务器安装数据库
yum -y install mariadb mariadb-server
  1. 启动数据库
systemctl start mariadb
  1. 修改Master配置文件
vim /etc/my.cnf
server-id = 1
log-bin = mysql-bin
skip-name-resolve
relay-log = mysql-relay-bin

如图所示
Mysql一主多从部署_第1张图片

  1. 保存退出后重新启动Master的数据库
systemctl start mariadb
  1. 修改两台Slave的配置文件
vim /etc/my.cnf

第一台slave

[mysqld]
server-id = 2
relay-log = relay-log
log-bin = master-log
read_only = ON
log_slave_updates = 1

如图所示
Mysql一主多从部署_第2张图片
第二台slave

[mysqld]
server-id = 3
relay-log = relay-log
read_only = ON
log_slave_updates = 1

如图所示
Mysql一主多从部署_第3张图片

  1. 修改完配置文件退出保存重新启动数据库
systemctl restart mariadb
  1. Master主机授权同步账号
grant replication slave,replication client on *.* to 'root'@'10.0.%.%' identified by '123456';
  1. 授权完后,查看二进制日志文件和位置
show master status;

如图所示
Mysql一主多从部署_第4张图片

以下是slave服务器的操作

第一台slave

  1. 停掉slave
stop slave;
change master to master_host='10.0.0.42',
master_user='root',
master_password='123456',
master_log_file='mysql-bin.000003',
master_log_pos=660;
  1. 启动
start slave;

查看slave的状态

show slave status\G;

IO线程为YES表示成功
Mysql一主多从部署_第5张图片
第二台slave

  1. 停掉slave
stop slave;
change master to master_host='10.0.0.42',
master_user='root',
master_password='123456',
master_log_file='mysql-bin.000003',
master_log_pos=660;
  1. 启动slave
start slave;

查看slave的状态

show slave status\G;

IO和SQL线程都YES表示成功

Mysql一主多从部署_第6张图片
做完以上操作基本完成了一主多从

  1. 测试一主多从是否成功
    Master操作:
create database chongweihe charset utf8;
  1. 查看Master里面是否有创建的数据库
show databases;

如图所示
Mysql一主多从部署_第7张图片

  1. 查看两台Slave是否有创建的数据库

第一台slave1
Mysql一主多从部署_第8张图片

第二台Slave2

Mysql一主多从部署_第9张图片
一主多从部署完成

三、安装配置MHA高可用

  1. 在所有 Mysql 节点授权拥有管理权限的用户可在本地网络中有其他节点上远程访问。 当然, 此时仅需要且只能在 master
    节点运行类似如下 SQL 语句即可,为MHA专门创建一个管理用户, 方便以后使用, 三个节点自动同步:。
grant all on *.* to 'mhaadmi'@'10.0.%.%' identified by '123456';
flush privileges;

以上操作是为了做MHA高可用

你可能感兴趣的:(MySQL)