mysql+ssl主从复制

2021年09月15日 阅读数:1
这篇文章主要向大家介绍mysql+ssl主从复制,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

1、做为主服务器Master, 会把本身的每一次改动都记录到 二进制日志 Binarylog 中。 (从服务器I/O thread会负责来读取master binary log, 而后写入自身relay log中而后在用自身的sql thread读取relay log并在自身服务器执行一遍。)
到这里主服务器上的更改就同步到从服务器上了。mysql

环境:sql

centos7 master  slave 
mysql5.7  192.168.41.10 192.168.41.20



 

一、实现基于 ssl 安全链接的主从复制
1) 在主 mysql 建立 SSL/RSA 文件vim

注:启用 mysql 支持 ssl 安全链接主要用于 mysql 主从复制(局域网能够非 ssh 链接即明文
复制,但 internet 复制建议采用 ssl 链接)
在主 mysql 上的操做完成,再生成一个复制账号:REQUIRE SSL
mysql>grant replication slave on . to 'rep'@'192.168.41.%' identified by '123456' require ssl;centos

在master上启用二进制日志并重启mysql服务
vim /etc/my.cnf
添加log-bin = mysql-bin 
systemctl restart mysqld安全

 

防火墙规则3306/tcp通讯
[root@localhost bin]# firewall-cmd --permanent --add-port=3306/tcp
success
[root@localhost bin]# firewall-cmd --reload 
success服务器

2)从服务器配置
slave的/etc/my.cnf网络

[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
server_id = 2
socket = /usr/local/mysql/mysql.sock
log-error = /usr/local/mysql/data/mysqld.error
relay-log = /usr/local/mysql/data/relay-log-bin
relay-log-index = /usr/local/mysql/data/slave-relay-bin.index

注:server_id 要惟一,不能和其余 mysql 主机的重复
在master主机把主 mysql 生成的证书给了从服务器ssh

cd /usr/local/mysql/data/socket

scp ca.pam client-cert-pem client-key.pam root@192.168.41.20:/usr/local/mysql/data/tcp

设置 slave client-key.pem 的 r 权限

chmod +r client-key.pam

ls -l client-key.pam

继续在从上配置 SSL:修改/etc/my.cnf 文件,添加以下内容

ssl-ca = /usr/local/mysql/data/ca.pam

ssl-cert = /usr/local/mysql/data/client-cert.pam

ssl-key = /usr/local/mysql/data/client-key.pam

重启mysqld服务
systemctl restart mysqld
ss -napt |grep 3306
进入mysql查看ssl是否持久化

那么在配置主从复制以前能够在从 mysql 上用 SSL 链接主服务器试试:

SSL 测试链接成功,而且登入的 SSL 协议是: Cipher in use is DHE-RSA-AES256-SHA
最后开始配置主从 replicate, 登陆slave mysql
在从上 change master to

start slave \启动从同步进程:
查看从的状态,如下两个值必须为 yes,表明从服务器能正常链接主服务器
Slave_IO_Running:Yes
Slave_SQL_Running:Yes

测试:
master:

slave:

注意:
主从同步slave同步master,master不一样步slave
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security, TLS)
是为网络通讯提供安全及数据完整性的一种安全协议。复制默认是明文进行传输的,经过
SSL 加密能够大大提升数据的安全性。