由于在主从复制中数据是明文的,所以就大大降低了安全性 因此需要借助ssl加密来增加其复制的安全性 5.6版本之上

主默认含有证书

MySQL 5.7.18 加密连接mysql_ssl_rsa_setup

[root@localhost ~]# scp /var/lib/mysql/ca.pem root@192.168.1.2:/var/lib/mysql          颁发的证书
[root@localhost ~]# scp /var/lib/mysql/client-cert.pem root@192.168.1.2:/var/lib/mysql    客户端的申请证书
[root@localhost ~]# scp /var/lib/mysql/client-key.pem root@192.168.1.2:/var/lib/mysql 客户端RSA密钥文件
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
server-id=1
log-bin=/var/lib/mysql/mysql-bin
ssl
ssl-ca=/var/lib/mysql/ca.pem
ssl-cert=/var/lib/mysql/client-cert.pem
ssl-key=/var/lib/mysql/client-key.pem
ssl_cert(mysql服务器端的证书位置)、ssl_key(mysql私钥位置)与ssl_ca(CA证书位置)
[root@localhost ~]# systemctl restart mysqld
[root@localhost ~]# mysql -u root -p1234.Com
mysql> grant replication slave on *.* to qq@'192.168.1.%' identified by '4567.Com' require ssl;
mysql> flush privileges;
mysql> show master status\G      "查看主服务器当前使用的二进制文件,及二进制文件的位置"
*************************** 1. row ***************************File: mysql-bin.000001Position: 597Binlog_Do_DB: Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
mysql> show master logs;     "查看主库的日志文件,以及position信息"
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |      597  |
+------------------+-----------+
1 row in set (0.00 sec)

从服务器配置

[root@localhost ~]# vim /etc/my.cnf
[mysqld]
server-id=2
relay-log=/var/lib/mysql/relay-log-bin     "定义中继日志保存的位置及文件名,也可以不用定义"
[root@localhost ~]# systemctl restart mysqld
[root@localhost ~]# cd /var/lib/mysql      //测试主从连接
[root@localhost mysql]# mysql --ssl-ca=ca.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem -uqq -p4567.Com -h 192.168.1.1
mysql> status;
···
Connection id:      12
Current database:
Current user:       qq@192.168.1.2
SSL:            Cipher in use is ECDHE-RSA-AES128-GCM-SHA256(使用的协议)
[root@localhost mysql]# mysql -u root -p1234.Com
mysql> change master to
master_host='192.168.1.1',
master_user='qq',
master_password='4567.Com',
master_log_file='mysql-bin.000001',
master_log_pos=597,
master_ssl=1,
master_ssl_ca='/var/lib/mysql/ca.pem',
master_ssl_cert='/var/lib/mysql/client-cert.pem',
master_ssl_key='/var/lib/mysql/client-key.pem';
mysql> start slave;
mysql> show slave status\G
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.1.1Master_User: qqMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000001Read_Master_Log_Pos: 597Relay_Log_File: relay-log-bin.000002Relay_Log_Pos: 320Relay_Master_Log_File: mysql-bin.000001Slave_IO_Running: YesSlave_SQL_Running: Yes
mysql> show variables like '%ssl%';            #查看是否开启SSL功能
+---------------+--------------------------------+
| Variable_name | Value                          |
+---------------+--------------------------------+
| have_openssl  | YES                            |
| have_ssl      | YES                            |
| ssl_ca        | /var/lib/mysql/ca.pem          |
| ssl_capath    |                                |
| ssl_cert      | /var/lib/mysql/client-cert.pem |
| ssl_cipher    |                                |
| ssl_crl       |                                |
| ssl_crlpath   |                                |
| ssl_key       | /var/lib/mysql/client-key.pem  |
+---------------+--------------------------------+
注意:启用mysql支持ssl安全连接主要用于mysql主从复制(局域网可以非ssh连接即明文复制,但internet复制建议采用ssl连接。)

总结:
1、MySQL5.7默认是开启SSL连接,如果强制用户使用SSL连接,那么应用程序的配置也需要明确指定SSL相关参数,否则程序会报错。
2、虽然SSL方式使得安全性提高了,但是相对地使得QPS也降低23%左右。所以要谨慎选择:
▷ 对于非常敏感核心的数据,或者QPS本来就不高的核心数据,可以采用SSL方式保障数据安全性;
▷ 对于采用短链接、要求高性能的应用,或者不产生核心敏感数据的应用,性能和可用性才是首要,建议不要采用SSL方式;
SSL(Secure Sockets Layer 安全套接层)及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。复制默认是明文进行传输的,通过SSL加密可以大大提高数据的安全性。
I waste time, time will waste me

MySQL开启ssl证书相关推荐

  1. mysql ssl jdbc_【MySQLSSLJAVA】关于MySQL开启SSL后,jdbc的配置

    一.MySQL服务端配置 # vim   /etc/my.cnf ########################################### [mysqld] require_secure ...

  2. Mysql配置ssl证书

    本环境基于mysql5.6配置,通过openssl生成证书进行配置 一.确认环境信息 1.查看数据库版本 mysql> select version(); +-----------+ | ver ...

  3. Docker MySQL开启SSL加密传输方案

    Docker MySQL开启SSL加密传输方案 产品:Docker MySQL 版本: 5.6 环境: CentOS Linux 7 文章目录 Docker MySQL开启SSL加密传输方案 方案背景 ...

  4. Mysql开启ssl加密协议及Java客户端配置操作指南

    Mysql开启ssl加密协议及Java客户端配置操作指南 Mysql配置 验证Mysql开启SSL Java客户端操作 生成证书密码 配置数据库连接 工具配置 Mysql配置 Mysql需要配置对应的 ...

  5. mysql开启ssl以及如何创建证书

    MYSQL版本8.0.32,默认是开启ssl的,同时也是自带证书的在/var/lib/mysql/下 jdbc连接Mysql数据库需要使用SSL时,可以按一下步骤进行设置: 前置条件(可跳过): 1. ...

  6. MySQL开启SSL的利与弊

    最近,准备升级一组MySQL到5.7版本,在安装完MySQL5.7后,在其data目录下发现多了很多.pem类型的文件,然后通过查阅相关资料,才知这些文件是MySQL5.7使用SSL加密连接的.本篇主 ...

  7. mysql安装ssl证书_Mysql配置ssl证书

    一.确认环境信息 1.查看数据库版本 mysql> select version(); +-----------+ | version() | +-----------+ | 5.6.36 | ...

  8. MYSQL 开启 SSL

    mysql5.7以上开启并配置 ssl 超级简单的教程 1. 执行以下命令: ##### mysql5.7 提供的 msyql_ssl_rsa_setup 功能,能直接生成ssl密钥和秘银(该文件一般 ...

  9. Mysql 开启ssl连接

    注意!本文是针对Mysql 5.7版本以上数据库,版本较低者可看这一篇博客:https://www.cnblogs.com/zhoujinyi/p/4191096.html 1. 检查当前SSL / ...

最新文章

  1. 浅显易懂 Makefile 入门 (01)— 什么是Makefile、为什么要用Makefile、Makefile规则、Makefile流程如何实现增量编译
  2. MySQL高级 - 案例 - 系统性能优化 - 分页优化
  3. [Leetcode][第977题][JAVA][有序数组的平方][排序][双指针]
  4. ocdma相干非相干_非相干系统是什么意思
  5. centos7配置IP地址
  6. 计算机操作系统|汤小丹|第四版|习题答案(五)
  7. plsql如何显示表结构图_如何用PLSQL导出数据库存表结构信息
  8. 【SDK】Android海康网络SDK实现人脸和车牌等报警图片抓拍功能
  9. risc-v gcc 编译 atomic 指令时产生 illegal operands 错误的解决办法
  10. 如何根据观看距离来确定合适的投影幕布尺寸?
  11. C1041: 无法打开程序数据库“xxx.pdb”;如果要将多个 CL.EXE 写入同一个 .PDB 文件,请使用 /FS
  12. NGINX源码之:ngx_hash
  13. java横向导出excel_JavaWeb POI 导出Excel
  14. PAT练习 蜜蜂寻路
  15. 免Root获取WIFI密码
  16. python 识图点击_Python图片识别——人工智能篇
  17. 公司上云在即,给大家分享一份猫厂、鹅厂和菊厂云服务器的测评情况
  18. 基于matlab的电炉温度控制算法比较,基于matlab的电炉温度控制算法比较及仿真研究...
  19. 现有MyCAT上新增一个库及MyCAT报错1184问题解决
  20. 请教100位行业专家后,我总结出第三方支付“断直连”的8大疑问!

热门文章

  1. Halcon 第七章『图像的几何变换』◆第1节:图像的仿射变换(位置变换、形状变换)及应用
  2. numpy.ndarray类型方法
  3. 如何快速在两台电脑之间传输大文件?
  4. 数学模型课程期末复习提纲(上)
  5. win7电脑远程桌面连接提示已停止工作,但电脑没有蓝牙,不是受蓝牙影响,且影响电脑卡顿必须重启故障模块名称:StackHash_e1f3
  6. Go语言中Printf 的用法
  7. MATLAB 在图中插入注释性文字
  8. 光纤收发器的原理及应用_光纤收发器的作用原理
  9. 【3D视觉原理】2-3D传感器原理
  10. 初学verilog必看