环境准备
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 |
- 三台服务器安装数据库
yum -y install mariadb mariadb-server
- 启动数据库
systemctl start mariadb
- 修改Master配置文件
vim /etc/my.cnf
server-id = 1
log-bin = mysql-bin
skip-name-resolve
relay-log = mysql-relay-bin
如图所示
- 保存退出后重新启动Master的数据库
systemctl start mariadb
- 修改两台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
如图所示
第二台slave
[mysqld]
server-id = 3
relay-log = relay-log
read_only = ON
log_slave_updates = 1
如图所示
- 修改完配置文件退出保存重新启动数据库
systemctl restart mariadb
- Master主机授权同步账号
grant replication slave,replication client on *.* to 'root'@'10.0.%.%' identified by '123456';
- 授权完后,查看二进制日志文件和位置
show master status;
如图所示
以下是slave服务器的操作
第一台slave
- 停掉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;
- 启动
start slave;
查看slave的状态
show slave status\G;
IO线程为YES表示成功
第二台slave
- 停掉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;
- 启动slave
start slave;
查看slave的状态
show slave status\G;
IO和SQL线程都YES表示成功
做完以上操作基本完成了一主多从
- 测试一主多从是否成功
Master操作:
create database chongweihe charset utf8;
- 查看Master里面是否有创建的数据库
show databases;
如图所示
- 查看两台Slave是否有创建的数据库
第一台slave1
第二台Slave2
一主多从部署完成
三、安装配置MHA高可用
- 在所有 Mysql 节点授权拥有管理权限的用户可在本地网络中有其他节点上远程访问。 当然, 此时仅需要且只能在 master
节点运行类似如下 SQL 语句即可,为MHA专门创建一个管理用户, 方便以后使用, 三个节点自动同步:。
grant all on *.* to 'mhaadmi'@'10.0.%.%' identified by '123456';
flush privileges;
以上操作是为了做MHA高可用