MySQL Cluster
MySQL 主从复制原理
参考:https://zhuanlan.zhihu.com/p/96212530
MySQL 主从同步
环境(MySQL5.7):
角色 | IP |
---|
Master | 172.16.1.128 |
Slave | 172.16.1.136 |
在默认安装的test
数据库中建一个测试表:
在 Master 主服务上
在主服务器上为从服务器建立一个连接帐户,并授予REPLICATION SLAVE
权限。
创建好用户之后,在从服务器进行登录测试:
修改 mysql 配置文件,/etc/my.cnf
:
修改完保存退出,然后重启服务,systemctl restart mariadb
查看主服务器状态:
锁表,为了产生环境中不让进新的数据,好让从服务器定位同步位置,初次同步完成后,记得解锁。
在 Slave 从服务器上
编辑配置文件my.cnf
:
修改完保存退出,然后重启服务,systemctl restart mariadb
使用change master
命令指定同步位置:
:warning:注意:上面的master_log_file
和master_log_pos
值要与 Master 主机一致。
查看 Slave 状态:
测试同步
在 Master 服务器中向之前创建好的test
空表插入数据:
在 Slave 端进行查看:
MySQL 双主同步
角色 | IP |
---|
Master/Slave(server1) | 172.16.1.128 |
Slave/Master(server2) | 172.16.1.136 |
同时在主服务器上建立一个连接用户,并授予REPLIATION SLAVE
权限,这里服务器1和服务器2都互为主从,所以需要分别建立。
双方测试连接,确保同步能够正常进行
修改配置文件/etc/my.cnf
的[mysqld]
配置段(仅作为参考):
修改完保存退出,随后重启 server1 和server2 的服务,systemctl restart mariadb
查看 server1 和 server2 两主机作为主服务器的状态:
分别在两主机上使用change master to
指定同步位置:
然后,分别在两主机上启动从服务器线程并查看其状态:
测试双主同步:
至此,双主同步已经成功搭建。
基于 SSL 加密传输(主从)
由于 mysql 在复制过程中是明文的,所以就大大降低了安全性,因此需要借助于ssl加密来增加其复制的安全性。
预先准备
在配置 ssl 前我们先看下一下 ssl 的状态信息:
可以看到 SSL 处于 DISABLED
状态,表示未开启。
要开启 SSL 只需要在配置文件/etc/my.cnf
中加入 ssl 即可:
随后保存退出,重启服务即可,systemctl restart mariadb
查看确认:
配置主从服务的 SSL 功能
配置 CA 和颁发证书
在Master
主机上,配置 CA
服务器:
为Master
准备私钥并颁发证书:
在Slave
主机上,准备私钥并申请证书:
在 Master
(主服务器)上为 Slave (从服务器)签发证书:
到此为止证书已经准备完成,请确保Master
和Slave
主机上有如下文件,并且属主和属组为mysql:
修改配置文件
修改Master
和Slave
主机配置文件:
完成后保存退出,然后都重启服务,systemctl restart mariadb
在Master
主机进行查看:
在Master
主机上创建具有复制权限的用户并授权给从服务器,参考上面的主从,这里就不再赘述。
查看Master
主机状态信息并记录下来:
配置Slave
端:
:warning:注意:如果之前已经启动过slave
和配置过slave
需要将其停掉,并重置:
在slave
客户端使用 SSL 进行测试连接:
启动slave
并查看状态信息:
测试主从同步:
基于 SSL 加密传输(双主)
参考[基于 SSL 加密传输(主从)](#基于 SSL 加密传输(主从))