SSL安全连接的主从复制
@(一:mysql安装)
[目录]
1)在主mysql创建SSL/RSA文件
# cd /usr/local/mysql/bin ---切换目录
mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
---创建新的SSL文件


重启mysqld服务
查看mysql的错误日志

报错信息显示是不能获得私钥,执行ls查看server-key.pem

发现没有r权限,立即授权r读

重启mysql服务,这时错误日志中就没有报错了
登录mysql,执行mysql>show variables like '%ssl%';

从上图可以看到mysql支持了ssl安全连接
注:
启用mysql支持ssl安全连接主要用于mysql主从复制(局域网可以非ssh连接即明文复制,但internet复制建议采用ssl连接)
在主mysql上的操作完成,再生成一个复制帐号:REQUIRE SSL

在主mysql上启用二进制日志并重启mysql服务

添加下面的配置项
log-bin = mysql-bin
重启mysql服务
systemctl restart mysqld
查看主mysql的状态

注:
要记住上图所显示的file和position的值,配置从服务器要用到 防火墙允许3306/tcp通信

2)接着在从服务器上配置
从mysql的/etc/my.cnf文件内容

注:
server_id要唯一,不能和其他mysql主机的重复
把主mysql生成的证书给了从服务器

注:
192.168.1.106是从mysql的IP地址
在从mysql查看复制过来的证书

设置client-key.pem的r权限

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

重启mysqld服务
systemctl restart mysqld
systemctl status mysqld
查看mysqld.err 是否有错误日志
查看SSL是否被支持:


那么在配置主从复制之前可以在从mysql上用SSL连接主服务器试试:

注: 192.168.1.108是主mysql的ip地址

SSL测试连接成功,并且登入的SSL协议是: Cipher in use is DHE-RSA-AES256-SHA
最后开始配置主从replicate,
登录从mysql

在从上change master to

启用从
start slave
查看从的状态,以下两个值必须为yes,代表从服务器能正常连接主服务器
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
测试:
在主mysql上:


从服务器上


以上同步成功。
总结:
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。复制默认是明文进行传输的,通过SSL加密可以大大提高数据的安全性。