首页/数据/数据库速查/MySQL TLS 加密连接与状态检查

MySQL TLS 加密连接与状态检查

8.0 默认支持 TLS:可查会话是否加密、证书信息,并用 REQUIRE SSL 强制特定账号必须加密连接。

数据库速查数据更新于 2026-10-13

MySQL TLS 加密连接是什么

MySQL 8.0 默认支持 TLS:实例启动时会自动生成自签证书,客户端可以用加密连接,也可以用 REQUIRE SSL 要求某个账号必须走加密。加密解决的是传输过程中的监听问题。需要区分强度等级:只要加密不代表能防中间人,客户端开启 VERIFY_IDENTITY 并配置 CA 才能真正校验收到的证书属于目标主机。

基本信息

服务端状态SHOW VARIABLES LIKE 'have_ssl';证书相关变量前缀为 ssl_
连接加密状态SHOW STATUS LIKE 'Ssl_cipher',非空表示当前连接已加密
强制加密账号CREATE USER ... REQUIRE SSL / ALTER USER ... REQUIRE SSL
客户端校验mysql --ssl-mode=VERIFY_IDENTITY 配合 --ssl-ca
证书类型8.0 默认自动生成自签证书,也可替换为企业 CA 签发证书

典型使用场景

  • 跨网络访问:应用与数据库不在同一可信内网时开启加密
  • 合规要求:规范明确禁止数据库流量明文传输
  • 账号强制加密:对特权账号设置 REQUIRE SSL,确保不会明文传输口令
  • 证书替换:用企业 CA 签发证书替换自签证书,配合客户端 CA 校验
  • 排查核对:确认当前连接是否真的加密,避免「以为开了其实没开」

检查与配置

检查与配置
-- 服务端是否支持加密连接
SHOW VARIABLES LIKE 'have_ssl';
-- 当前连接的加密状态:Ssl_cipher 非空表示已加密
SHOW STATUS LIKE 'Ssl_cipher';
SHOW STATUS LIKE 'Ssl_version';
-- 按会话维度查看(8.0 通过 performance_schema)
SELECT * FROM performance_schema.session_status WHERE VARIABLE_NAME = 'Ssl_cipher';
-- 要求某个账号必须使用加密连接
ALTER USER 'app'@'10.0.%' REQUIRE SSL;

客户端校验连接参数

客户端校验连接参数
# 只加密不校验证书身份
mysql --ssl-mode=REQUIRED -uapp -p -h 10.0.0.5
# 加密并校验证书链与主机名(推荐)
mysql --ssl-mode=VERIFY_IDENTITY --ssl-ca=/etc/mysql/certs/ca.pem -uapp -p -h 10.0.0.5
# 检查当前连接使用情况
mysql -uapp -p -e "SHOW STATUS LIKE 'Ssl_cipher';"

强度等级对照

配置加密防中间人适用场景
默认(不指定)视客户端与账号要求无仅可信内网
--ssl-mode=REQUIRED有无过渡阶段
--ssl-mode=VERIFY_CA有校验签发链自建 CA 环境
--ssl-mode=VERIFY_IDENTITY有校验签发链与主机名跨网络的标准做法
Ssl_cipher 为空只说明「当前这条连接没加密」,不代表服务端不支持加密:账号要求、客户端参数与是否提供证书都会影响协商结果。
使用自签证书时开启 VERIFY_IDENTITY 会校验失败:需要提供对应 CA 文件,或改用企业 CA 签发的证书,跳过校验只适合临时排查。

易错点

  • 看到 Ssl_cipher 为空就认为服务端不支持 TLS:可能只是这条连接没协商加密,要结合账号要求与客户端参数一起判断
  • 用自签证书配 VERIFY_IDENTITY:校验必然失败,需要提供 CA 文件或替换为受信证书
  • 只设 REQUIRE SSL 就以为安全:传输加密了但服务端身份未校验,跨网络场景仍需 CA 校验
  • 证书更换后不通知应用侧:客户端仍用旧 CA 校验会连接失败,证书轮换要有统一变更流程
  • 忽略加密带来的性能开销:加密连接对短连接与高并发场景有额外成本,需要评估连接复用策略

数据来源与参考

  • MySQL 8.0 Reference Manual: Using Encrypted Connections

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌