Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何设置Mysql 加密连接SSL

如何设置Mysql 加密连接SSL

原创
作者头像
云知识Online
发布于 2018-05-03 02:10:56
发布于 2018-05-03 02:10:56
5.3K08
代码可运行
举报
文章被收录于专栏:云知识学习云知识学习
运行总次数:8
代码可运行

一、SSL含义

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

二、mysql5.7SSL配置和使用

注意:这种方法只使用5.7,mysql5.6也支持ssl加密连接,但是配置过程比较复杂,需要用到openssl命令来创建各类共秘钥。

我的测试环境默认没有启用SSL,状态为disabled

mysql> show variables like '%ssl%';

+---------------+----------+

| Variable_name | Value |

+---------------+----------+

| have_openssl | DISABLED |

| have_ssl | DISABLED |

| ssl_ca | |

| ssl_capath | |

| ssl_cert | |

| ssl_cipher | |

| ssl_crl | |

| ssl_crlpath | |

| ssl_key | |

+---------------+----------+

可以通过执行命令mysql_ssl_rsa_setup创建pem文件:

[root@Darren1 ~]# cd /usr/local/mysql/bin/

[root@Darren1 bin]# ./mysql_ssl_rsa_setup

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'

运行完命令mysql_ssl_rsa_setup后会发现数据目录下多出了一些以pem结尾的文件,而这些文件就是开启SSL连接所需要的文件:

[root@Darren1 data]# ll *.pem

-rw------- 1 root root 1679 Nov 26 05:56 ca-key.pem

-rw-r--r-- 1 root root 1074 Nov 26 05:56 ca.pem

-rw-r--r-- 1 root root 1078 Nov 26 05:56 client-cert.pem

-rw------- 1 root root 1679 Nov 26 05:56 client-key.pem

-rw------- 1 root root 1679 Nov 26 05:56 private_key.pem

-rw-r--r-- 1 root root 451 Nov 26 05:56 public_key.pem

-rw-r--r-- 1 root root 1078 Nov 26 05:56 server-cert.pem

-rw------- 1 root root 1675 Nov 26 05:56 server-key.pem

新创建的文件属于root用户,需要改变所有者和所属组,然后重启服务:

[root@Darren1 data]# chown -R mysql:mysql data/

[root@Darren1 ~]# /etc/init.d/mysqld restart

mysql> show variables like '%ssl%';

+---------------+-----------------+

| Variable_name | Value |

+---------------+-----------------+

| have_openssl | YES |

| have_ssl | YES |

| ssl_ca | ca.pem |

| ssl_capath | |

| ssl_cert | server-cert.pem |

| ssl_cipher | |

| ssl_crl | |

| ssl_crlpath | |

| ssl_key | server-key.pem |

+---------------+-----------------+

指定IP,通过网络登陆测试:

[root@Darren1 ~]# mysql -uroot -p147258 -h192.168.91.5

mysql>\s

mysql Ver 14.14 Distrib 5.7.14, for linux-glibc2.5 (x86_64) using EditLine wrapper

Connection id: 10

Current database:

Current user: root@Darren1

SSL: Cipher in use is DHE-RSA-AES256-SHA

......

本地客户端登陆,没指定IP,默认是不需要SSL加密:

[root@Darren1 ~]# mysql -uroot -p147258 -hlocalhost

mysql>\s

mysql Ver 14.14 Distrib 5.7.14, for linux-glibc2.5 (x86_64) using EditLine wrapper

Connection id: 12

Current database:

Current user: root@localhost

SSL: Not in use

......

mysql5.7用户连接默认是使用ssl加密的,也可以用--ssl=0(mysql5.7也可以用--ssl-mode=dibaled)强制用户不使用ssl加密:

[root@Darren1 ~]# mysql -ucdhu4 -p147258 -h192.168.91.5 --ssl=0

或者:

[root@Darren1 ~]# mysql -ucdhu4 -p147258 -h192.168.91.5 --ssl-mode=disabled

mysql>\s

mysql Ver 14.14 Distrib 5.7.14, for linux-glibc2.5 (x86_64) using EditLine wrapper

Connection id: 18

Current database:

Current user: cdhu4@Darren1

SSL: Not in use

......

若在创建用户时,希望该用户每次必须通过SSL方式,则需在通过REQUIRE SSL来进行设置:

mysql>alter user cdhu5@'%' require ssl;

此时指定ssl=0(或者ssl_mode=disabled)则会报错1045:

[root@Darren1 ~]# mysql -ucdhu5 -p147258 -h192.168.91.5 --ssl=0

ERROR 1045 (28000): Access denied for user 'cdhu5'@'Darren1' (using password: YES)

三、ssl加密连接对性能的影响

开启ssl加密连接是性能必然会下降,性能开销在25%左右, 另外,由于SSL开销较大的环节在建立连接,所以短链接的开销可能会更大,因此推荐使用长连接或者连接池的方式来减小SSL所带来的额外开销,不过好在MySQL的应用习惯大部分也是长连接的方式。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
centos下手动安装libreoffice程序–亲测可行
Download LibreOffice | LibreOffice - Free Office Suite - Based on OpenOffice - Compatible with Microsoft
超级小可爱
2024/08/07
3.1K2
centos下手动安装libreoffice程序–亲测可行
Linux-Centos中安装部署libreoffice7.0.x
首先在主机上的/home目录下,新建一个/kaivi文件夹。在/kaivi文件夹中存放一个word文档(1.docx)。
陈不成i
2021/07/08
3.3K0
Ubuntu上部署JobConverter + Ibreoffice环境
本文内容主要目的在于测试Ibreoffice转换docx文档失败的原因是否和系统有关,之前我在CentOS上和MacOS上均转换不成功,但是使用一个开源的项目却可以,而他用的就是Ubuntu和Ibreoffice,抱着找到原因的心态在Ubuntu上进行测试。
码客说
2020/06/22
1.7K0
5 个用命令行操作 LibreOffice 的技巧
LibreOffice 拥有所有你想要的办公软件套件的生产力功能,使其成为微软 Office 或谷歌套件的流行的开源替代品。LibreOffice 的能力之一是可以从命令行操作。例如,Seth Kenlon 最近解释了如何使用 LibreOffice 用全局 命令行选项将多个文件 从 DOCX 转换为 EPUB。他的文章启发我分享一些其他 LibreOffice 命令行技巧和窍门。
用户8639654
2021/09/09
2.7K0
浅浅写一个Word、PowerPoint、Excel文档转PDF工具
最近在搞知识库,需要把各种 Word、PowerPoint、Excel 文件转换成 PDF 文件,不然 Word 中的表格中的文字提取会出现一些问题;使用 Office 或者 WPS 将大量文件转换成 PDF 需要频繁重复打开文件,点击保存为PDF,然后再关闭,非常繁琐。所以就简单的写了下面的 Python 程序来帮助我转化。
繁依Fanyi
2024/06/08
3700
浅浅写一个Word、PowerPoint、Excel文档转PDF工具
Java使用OpenOffice将Office文件转换为PDF
摘要:本文详细介绍如何在Java应用中集成OpenOffice/LibreOffice,实现Word、Excel、PowerPoint等Office文档到PDF的自动化转换。通过jodconverter库的实战演示,结合服务配置、代码实现和常见问题解决方案,为开发者提供完整的文档转换解决方案。
技术文章分析
2025/08/13
2250
office系列文档的在线预览解决方案 - 在linux平台下转为pdf
office系列文档包括:.ppt .pptx .doc .docx .xls .xlsx 等常用格式。
王亚昌
2018/08/03
1.9K0
LibreOffice基于linux的安装
官方地址:https://zh-cn.libreoffice.org/download/libreoffice/
华创信息技术
2022/05/28
1.7K0
如何在CentOS上使用LibreOffice将Word文档转换为PDF格式
在处理文档时,将Word文件转换为PDF格式是一个常见需求。PDF格式的文档更加标准化,易于分享和阅读,同时也能很好地保持原始布局和格式。本文将指导你如何在CentOS系统上使用LibreOffice来完成这一任务。
高老师
2024/02/05
3K1
使用python将word文档和pdf电子书进行格式互转(兼容Windows/Linux)
    一些重要文档格式之间的互转在目前显得尤为重要,pdf作为通用格式在现在各个平台上兼容性是最好的,所以写python脚本将这些word文档批量转换pdf是最好的解决方案。
用户9127725
2022/08/08
1.8K0
使用python将word文档和pdf电子书进行格式互转(兼容Windows/Linux)
Python提取Word表格数据教程(含.doc/.docx)
最近由于工作上的需要,需要使用Python完成DOC文档格式数据的读取和修改工作,但通过查阅相关资料,直接对DOC文档进行读取和修改没有相关的依赖(主要为doc文件为较早的windows系统支持格式),需要将DOC文件转换为.docx格式,为什么是docx格式?
盹猫
2025/07/22
1560
知识分享之Golang——一个常见word、excel转换pdf的工具函数
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。
cn華少
2022/04/02
3.9K0
实践教程:使用DeepSeek实现PDF转Word的高效方案
PDF文件因其跨平台、格式稳定的特性被广泛使用,但在内容编辑场景中,用户常需将PDF转换为可编辑的Word文档。传统的付费工具(如Adobe Acrobat)或在线转换平台存在成本高、隐私风险等问题。本文将使用pdf2docx库进行格式保留转换,并提供两种实现方式(基础版和增强版)
知识浅谈
2025/05/18
4790
最全总结 | 聊聊 Python 办公自动化之 Word(下)
这个功能,由章节对象中的属性 different_first_page_header_footer 来控制
AirPython
2020/11/19
3.1K0
nginx+php+openOffice[通俗易懂]
由于需要将word-》pdf功能从windows迁移到linux,由于现在测试服务器尝试,所以有必要记录下安装过程。
全栈程序员站长
2022/07/20
5840
jodconverter4.1.0版本改进解析
jodconverter 4.1.0版本的话,改进了api的结构,同时新增了local以及online的模块,本文就来分析一下。
code4it
2018/09/17
3.6K0
终于有人centos内网安装libreoffice说清楚了!避免采坑
例如:LibreOffice_7.1.0.2_Linux_x86-64_rpm.tar.gz
小熊学Java
2023/07/12
4K2
终于有人centos内网安装libreoffice说清楚了!避免采坑
springboot实战之office文档在线预览
文档在线预览在企业级应用开发也算是比较常遇见的需求了,通常处理这方面的需求大致有如下的方案,
lyb-geek
2019/11/27
7.9K0
springboot实战之office文档在线预览
.NET Core 使用 LibreOffice 实现 Office 预览(Docker 部署)
前些年做云盘产品的时候,一个很核心的功能就是 Office 文件预览,当时还没有使用 .NET Core ,程序部署在 Windows Server 服务器上,文件预览的方案采用了微软的 OWA 。
oec2003
2022/12/01
1.7K0
.NET Core 使用 LibreOffice 实现 Office 预览(Docker 部署)
我的MacOS上一些好用的软件-第二篇
在上一篇我的MacOS上一些好用的软件(集合)中介绍了一些我常用的软件,并且是定期更新的。本文主要是补充一些我上一台MacBook Pro中使用的一些好用软件,只是没有特别大的需求所以现在新买的的Mac Studio里没有装他们,但不能否认的是他们依然是一些好用的软件
Y1ng
2022/10/31
7720
我的MacOS上一些好用的软件-第二篇
推荐阅读
相关推荐
centos下手动安装libreoffice程序–亲测可行
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验