MySql基于ssl安全连接的主从复制
一、设备环境
centos7.2 两台
MySQL 5.7
MySQL 5.7 主要特性:
原生支持Systemd
更好的性能:对于多核CPU、固态硬盘、锁有着更好的优化
更好的InnoDB存储引擎
更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也可以选择使用MySQL数据库。
新增sys库:以后这会是DBA访问最频繁的库
更好的优化器:优化器代码重构的意义将在这个版本及以后的版本中带来巨大的改进,Oracle官方正在解决MySQL之前最大的难题原生JSON类型的支持(JavaScript Object Notation)
注:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
JSON 语法是 JavaScript 对象表示语法的子集。
l 数据在键值对中
l 数据由逗号分隔
l 花括号保存对象
l 方括号保存数组
二、实现基于ssl安全连接的主从复制
1)在主mysql创建SSL/RSA文件
给server-key.pem权限
登录mysql,执行mysql>show variables like'%ssl%';
在主mysql上的操作完成,再生成一个复制帐号:REQUIRE SSL
在主mysql上启用二进制日志并重启mysql服务
查看主mysql的状态
注:要记住上图所显示的file和position的值,配置从服务器要用到
防火墙允许3306/tcp通信
2)接着就去从上配置
从mysql的/etc/my.cnf文件内容
把主mysql生成的证书给了从服务器
查看从mysql复制过来的证书
继续在从上配置SSL:修改/etc/my.cnf文件,添加如下内容
重启mysqld服务
查看SSL是否被支持:
在配置主从复制之前可以在从mysql上用SSL连接主服务器试试:
SSL测试连接成功,并且登入的SSL协议是: Cipher in use is DHE-RSA-AES256-SHA
最后开始配置主从replicate, 登录从mysql
在从上change master to
测试:
从服务器上
以上同步成功。
总结:
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。复制默认是明文进行传输的,通过SSL加密可以大大提高数据的安全性。