0

0

如何开启mysql ssl连接_数据传输安全

P粉602998670

P粉602998670

发布时间:2026-01-08 07:51:13

|

264人浏览过

|

来源于php中文网

原创

MySQL SSL连接需先确认支持、生成证书、配置服务端、强制用户SSL及客户端启用;具体包括检查have_ssl变量、用OpenSSL生成CA/服务器/客户端证书、配置my.cnf中ssl-ca/cert/key路径、ALTER USER REQUIRE SSL、客户端使用--ssl-mode=REQUIRED或代码中传入SSL参数。

如何开启mysql ssl连接_数据传输安全

MySQL SSL 连接能加密客户端与服务器之间的通信,防止数据在传输中被窃听或篡改。开启 SSL 不是单纯改个配置就行,需生成证书、配置服务端、验证启用状态,并让客户端明确使用 SSL 连接。

一、检查 MySQL 是否支持 SSL

登录 MySQL 执行以下命令:

SHOW VARIABLES LIKE 'have_ssl';
若返回 YES,说明编译时启用了 SSL 支持;若为 red">DISABLEDNO,需重新编译或升级 MySQL 版本(5.7.10+ 和 8.0 默认支持)。

二、生成 SSL 证书和密钥文件

推荐使用 OpenSSL 工具自建(测试/内网可用),生产环境建议使用受信任 CA 签发的证书。

在 MySQL 数据目录外新建 ssl 目录,执行以下命令:

  • 生成 CA 私钥和证书:
    openssl genrsa 2048 > ca-key.pem
    openssl req -new -x509 -nodes -days 3650 -key ca-key.pem -out ca.pem
  • 生成服务器私钥和 CSR:
    openssl req -newkey rsa:2048 -days 3650 -nodes -keyout server-key.pem -out server-req.pem
  • 生成服务器证书(用 CA 签发):
    openssl x509 -req -in server-req.pem -days 3650 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
  • 生成客户端私钥和证书(可选,用于双向认证):
    openssl req -newkey rsa:2048 -days 3650 -nodes -keyout client-key.pem -out client-req.pem
    openssl x509 -req -in client-req.pem -days 3650 -CA ca.pem -CAkey ca-key.pem -set_serial 02 -out client-cert.pem

最终得到关键文件:ca.pemserver-cert.pemserver-key.pem(客户端还需 client-cert.pemclient-key.pem)。

三、配置 MySQL 服务端启用 SSL

编辑 MySQL 配置文件(如 /etc/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf),在 [mysqld] 段添加:

ssl-ca=/path/to/ca.pem
ssl-cert=/path/to/server-cert.pem
ssl-key=/path/to/server-key.pem

重启 MySQL:sudo systemctl restart mysql(或 mysqld)。

ANDROID蓝牙编程 WORD文档 doc格式
ANDROID蓝牙编程 WORD文档 doc格式

用BluetoothAdapter类,你能够在Android设备上查找周边的蓝牙设备然后配对(绑定),蓝牙通讯是基于唯一地址MAC来相互 传输的,考虑到安全问题Bluetooth通讯时需要先配对。然后开始相互连接,连接后设备将会共享同一个RFCOMM通道以便相互传输数据,目前这些实 现在Android 2.0或更高版本SDK上实现。 一、查找发现 findding/discovering devices 对于Android查找发现蓝牙设备使用BluetoothAdapter类的startDisco

下载

验证是否生效:

SHOW VARIABLES LIKE '%ssl%';
确保 have_ssl = YES,且 ssl_cassl_certssl_key 显示对应路径。

四、强制用户使用 SSL 连接(可选但推荐)

为提升安全性,可限制特定用户必须通过 SSL 登录:

CREATE USER 'appuser'@'%' IDENTIFIED BY 'password';
ALTER USER 'appuser'@'%' REQUIRE SSL;
FLUSH PRIVILEGES;

之后该用户若不加 --ssl-mode=REQUIRED 或等效参数,将无法连接。

五、客户端连接时启用 SSL

不同客户端方式略有差异:

  • mysql 命令行:
    mysql -u appuser -p --ssl-mode=REQUIRED
    或指定证书(双向认证时):
    mysql -u appuser -p --ssl-ca=ca.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem
  • MySQL 8.0+ 默认启用安全连接:
    若服务端配置了有效证书,新版客户端会自动尝试 SSL;可通过 --ssl-mode=DISABLED 关闭(不建议)。
  • 应用代码(如 Python PyMySQL):
    在连接参数中加入:
    ssl={'ca': '/path/to/ca.pem', 'cert': '/path/to/client-cert.pem', 'key': '/path/to/client-key.pem'}

连接成功后,执行 STATUS;SELECT * FROM performance_schema.status_by_thread WHERE VARIABLE_NAME = 'Ssl_cipher';,非空表示当前连接已加密。

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

737

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

633

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

755

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

617

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1259

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

547

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

577

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

705

2023.08.11

java学习网站推荐汇总
java学习网站推荐汇总

本专题整合了java学习网站相关内容,阅读专题下面的文章了解更多详细内容。

6

2026.01.08

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.7万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 785人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号