MySQL开启ssl证书
由于在主从复制中数据是明文的,所以就大大降低了安全性 因此需要借助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证书相关推荐
- mysql ssl jdbc_【MySQLSSLJAVA】关于MySQL开启SSL后,jdbc的配置
一.MySQL服务端配置 # vim /etc/my.cnf ########################################### [mysqld] require_secure ...
- Mysql配置ssl证书
本环境基于mysql5.6配置,通过openssl生成证书进行配置 一.确认环境信息 1.查看数据库版本 mysql> select version(); +-----------+ | ver ...
- Docker MySQL开启SSL加密传输方案
Docker MySQL开启SSL加密传输方案 产品:Docker MySQL 版本: 5.6 环境: CentOS Linux 7 文章目录 Docker MySQL开启SSL加密传输方案 方案背景 ...
- Mysql开启ssl加密协议及Java客户端配置操作指南
Mysql开启ssl加密协议及Java客户端配置操作指南 Mysql配置 验证Mysql开启SSL Java客户端操作 生成证书密码 配置数据库连接 工具配置 Mysql配置 Mysql需要配置对应的 ...
- mysql开启ssl以及如何创建证书
MYSQL版本8.0.32,默认是开启ssl的,同时也是自带证书的在/var/lib/mysql/下 jdbc连接Mysql数据库需要使用SSL时,可以按一下步骤进行设置: 前置条件(可跳过): 1. ...
- MySQL开启SSL的利与弊
最近,准备升级一组MySQL到5.7版本,在安装完MySQL5.7后,在其data目录下发现多了很多.pem类型的文件,然后通过查阅相关资料,才知这些文件是MySQL5.7使用SSL加密连接的.本篇主 ...
- mysql安装ssl证书_Mysql配置ssl证书
一.确认环境信息 1.查看数据库版本 mysql> select version(); +-----------+ | version() | +-----------+ | 5.6.36 | ...
- MYSQL 开启 SSL
mysql5.7以上开启并配置 ssl 超级简单的教程 1. 执行以下命令: ##### mysql5.7 提供的 msyql_ssl_rsa_setup 功能,能直接生成ssl密钥和秘银(该文件一般 ...
- Mysql 开启ssl连接
注意!本文是针对Mysql 5.7版本以上数据库,版本较低者可看这一篇博客:https://www.cnblogs.com/zhoujinyi/p/4191096.html 1. 检查当前SSL / ...
最新文章
- 浅显易懂 Makefile 入门 (01)— 什么是Makefile、为什么要用Makefile、Makefile规则、Makefile流程如何实现增量编译
- MySQL高级 - 案例 - 系统性能优化 - 分页优化
- [Leetcode][第977题][JAVA][有序数组的平方][排序][双指针]
- ocdma相干非相干_非相干系统是什么意思
- centos7配置IP地址
- 计算机操作系统|汤小丹|第四版|习题答案(五)
- plsql如何显示表结构图_如何用PLSQL导出数据库存表结构信息
- 【SDK】Android海康网络SDK实现人脸和车牌等报警图片抓拍功能
- risc-v gcc 编译 atomic 指令时产生 illegal operands 错误的解决办法
- 如何根据观看距离来确定合适的投影幕布尺寸?
- C1041: 无法打开程序数据库“xxx.pdb”;如果要将多个 CL.EXE 写入同一个 .PDB 文件,请使用 /FS
- NGINX源码之:ngx_hash
- java横向导出excel_JavaWeb POI 导出Excel
- PAT练习 蜜蜂寻路
- 免Root获取WIFI密码
- python 识图点击_Python图片识别——人工智能篇
- 公司上云在即,给大家分享一份猫厂、鹅厂和菊厂云服务器的测评情况
- 基于matlab的电炉温度控制算法比较,基于matlab的电炉温度控制算法比较及仿真研究...
- 现有MyCAT上新增一个库及MyCAT报错1184问题解决
- 请教100位行业专家后,我总结出第三方支付“断直连”的8大疑问!