成功最有效的方法就是向有经验的人学习!

基于SSL实现Mysql加密的主从复制配置

由于mysql的主从复制是明文传送的,但如果在生产环境中跨网络我们使用的主从还是明文传送的话,就保证不了数据的安全性,为了解决这一问题,我们需要加密进行传送,也就是基于SSL的加密方法进行传输数据

实验环境:Master—Centos7.2 —Mysql5.7

Slave—Centos7.2—Mysql5.7

首先需要安装mysql5.7这里不做演示

一、基于SSL实现Mysql加密的主从复制配置

1)在mysql主上创建SSL/RSA文件

# cd /usr/local/mysql/bin/
[root@yankerp bin]# mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
Generating a 2048 bit RSA private key
.........................................................................................+++
..................................................................................................+++
writing new private key to 'ca-key.pem'
-----
Generating a 2048 bit RSA private key
.+++
....+++
writing new private key to 'server-key.pem'
-----
Generating a 2048 bit RSA private key
............................+++
.....+++
writing new private key to 'client-key.pem'
-----
基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

cd /usr/local/mysql/bin —切换目录

mysql_ssl_rsa_setup    –user=mysql    –basedir=/usr/local/mysql   –datadir=/usr/local/mysql/data —创建新的 SSL 文件

创建完成后我们进入/usr/local/mysql/data中查看,我们可以看到有pem后缀名这样的文件

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

2)产生了pem后缀文件时,我们重启mysql服务,查看mysql的错误日志

# systemctl restart mysqld
基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

以上错误中提示不能获取私钥,这时候我们查看错误中的server-key.pem

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

我们发现server-key.pem这个文件没有r权限这时候我们给予权限再次重启mysql服务

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

这时候我们重启了mysql服务,错误日志中就没有错误了

3)登陆mysql查看mysql是否支持ssl安全连接

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

4)在主 mysql 上的操作完成,再生成一个复制帐号:REQUIRE SSL

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

在主上启用二进制日志,添加以下两行

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

注意:以上的server-id是唯一的,主和从的server-id都是不一样的

5)重启mysql服务查看mysql主的状态,开放3306端口

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

要记住上图所显示的 file 和 position 的值,配置从服务器要用到

二、配置mysql从服务器

1)在从mysql的/etc/my.cnf文件内容

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

注:server_id要唯一,不能和主mysql的重复

2)把主mysql生成的证书给了从服务器

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

3)在从上面查看主传来的证书,并且给予client-key.pem权限

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

随后继续在从上面配置ssl,修改/etc/my.cnf文件

# vim /etc/my.cnf
基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

然后重启mysql服务,并查看mysql错误日志是否有错误信息

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

以上确定没报错后,查看 从SSL 是否被支持:

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

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

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

以上图中的192.168.236.100是Master的ip地址

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

此时SSL 测试连接成功

5)在从上 change master to

#change master to   
master_host='192.168.236.100',  
master_user='rep',  
master_password='pwd123',  
master_log_file='mysql-bin.000004',  
master_log_pos=154,  
master_ssl=1,  
master_ssl_ca='  
/usr/local/mysql/data/ca.pem',  
master_ssl_cert='/usr/local/mysql/data/client-cert.pem',  
master_ssl_key='/usr/local/mysql/data/client-key.pem';
基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

master_log_file=’mysql-bin.000004′, 是在主上面show master status的结果这个不可以随便写

6)启用从并且查看从的状态,以下两个值必须为 yes,代表从服务器能正常连接主服务器

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

测试:在主mysql上创建一个zhangsan库然后再从上面查看是否同步

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

创建完成后在从上面验证。

基于SSL实现Mysql加密的主从复制配置

基于SSL实现Mysql加密的主从复制配置

赞(0) 打赏
未经允许不得转载:陈桂林博客 » 基于SSL实现Mysql加密的主从复制配置
分享到

大佬们的评论 抢沙发

全新“一站式”建站,高质量、高售后的一条龙服务

微信 抖音 支付宝 百度 头条 快手全平台打通信息流

橙子建站.极速智能建站8折购买虚拟主机

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册