讲师中心 微信公众号
AI工具推荐 视频效率加速

如何修复Hyperf连接MySQL报SSL连接错误的异常_在Database配置中禁用SSL选项

酷萱小哥_6919

酷萱小哥_6919

发布时间:2026-05-27 19:12:26

|

430人浏览过

|

来源于php中文网

原创

最直接有效的修复方式是禁用客户端 SSL,仅限开发环境;需在 Hyperf 的 database.php 中配置 PDO::MYSQL_ATTR_SSL_MODE => PDO::MYSQL_ATTR_SSL_MODE_DISABLED,并移除所有其他 SSL 相关选项。

如何修复hyperf连接mysql报ssl连接错误的异常_在database配置中禁用ssl选项

Hyperf 连接 MySQL 报 SSL 连接错误,最直接有效的修复方式是禁用客户端 SSL,但必须明确:这不是“修 bug”,而是主动关闭安全校验——仅限开发环境。

为什么 mysql 命令能连上,Hyperf 却报 SSL connection error: unknown error number

MySQL 8.x 默认启用 SSL,但命令行客户端(mysql)在未显式指定 SSL 参数时会自动降级为非加密连接;而 Hyperf 底层的 PDO 或 mysqli 扩展在某些配置下会强制尝试 SSL 握手,一旦服务端没配证书或客户端不提供验证路径,就卡在 unknown error number ——这其实是 OpenSSL 底层没抛出具体错误码的兜底提示。

  • 检查服务端是否真启用了 SSL:SHOW VARIABLES LIKE 'have_ssl';,若返回 DISABLED 或 NO,说明服务端压根没开 SSL,客户端却在瞎试
  • Hyperf 的 database.php 配置中若写了 'options' => [PDO::MYSQL_ATTR_SSL_CA => '/path'] 等字段,但路径无效或文件为空,也会触发该错误
  • PHP 的 mysqli 扩展若启用了 MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT 标志(旧写法),反而会干扰握手流程,导致静默失败

在 database.php 中禁用 SSL 的正确写法

Hyperf 使用 PDO 连接 MySQL,禁用 SSL 要落在 DSN 或 PDO options 里,不是改全局 PHP 设置。

MySQL8 CRM Schema Design Expert
MySQL8 CRM Schema Design Expert

面向 CRM 系统的 MySQL 8 数据库模式设计。当用户需要为客户关系管理(CRM)系统设计、评审、优化或生成数据库模式时,应使用此项技能。

下载
  • DSN 中加 ?sslmode=disabled(仅部分驱动支持,不通用)
  • 更可靠的是在 'options' 数组中传入 PDO::MYSQL_ATTR_SSL_MODE => PDO::MYSQL_ATTR_SSL_MODE_DISABLED
  • **必须同时移除所有 SSL 相关选项**:删掉 PDO::MYSQL_ATTR_SSL_CA、PDO::MYSQL_ATTR_SSL_CERT、PDO::MYSQL_ATTR_SSL_KEY 等键,否则 PDO 会优先尝试 SSL
  • 示例配置片段:
'mysql' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', 3306'),
    'database' => env('DB_DATABASE', 'hyperf'),
    'username' => env('DB_USERNAME', 'root'),
    'password' => env('DB_PASSWORD', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'strict' => true,
    'options' => [
        PDO::ATTR_CASE => PDO::CASE_NATURAL,
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES => false,
        PDO::MYSQL_ATTR_SSL_MODE => PDO::MYSQL_ATTR_SSL_MODE_DISABLED, // ? 关键
        // 删掉下面这几行(如果存在)
        // PDO::MYSQL_ATTR_SSL_CA => '/xxx/ca.pem',
        // PDO::MYSQL_ATTR_SSL_CERT => '/xxx/client-cert.pem',
        // PDO::MYSQL_ATTR_SSL_KEY => '/xxx/client-key.pem',
    ],
],

为什么不用 skip_ssl = 1 改 MySQL 配置?

你可以在 MySQL 的 my.cnf 里加 skip_ssl 并重启服务,但这会影响所有客户端,且在容器化或云数据库(如阿里云 RDS、AWS RDS)中根本不可行——你没有权限改服务端配置。Hyperf 作为客户端,应该控制自己的行为,而不是倒逼服务端妥协。

  • 本地开发用 Docker 启 MySQL?直接在 docker run 命令里加 --ssl-mode=DISABLED 不生效,因为那是 mysql client 的参数,不是 mysqld 的
  • 云数据库强制要求 SSL?那就不能禁用,得走证书路线:用 setCaBundle()(注意是 PEM 格式,不是 .p12)、配对 SAN 域名、确保 PHP curl 支持 openssl
  • Hyperf worker 进程用户(如 www-data)若对证书文件无读权限,file_get_contents 失败会静默 fallback 到 SSL 错误,而非报 “permission denied”

真正麻烦的从来不是“怎么关 SSL”,而是关了之后忘了它本该开着——尤其当代码从 dev 分支合到 prod 时,database.php 里那行 PDO::MYSQL_ATTR_SSL_MODE_DISABLED 很容易被带过去。生产环境一旦漏掉证书配置又关了 SSL,等于裸奔。

热门AI工具

更多
VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

相关专题

更多
SSL检测工具介绍
SSL检测工具介绍

SSL检测工具有SSL Labs、SSL Check、SSL Server Test、SSLMate、SSL/TLS Analyzer等。详细介绍:1、SSL Labs是一个由Qualys提供的在线SSL检测工具,可以评估服务器证书的部署情况、加密套件、协议支持等方面的安全性,它提供了一个详细的报告,包括证书的颁发者、有效期、安全性配置等;2、SSL Check等等。

830

2023.10.20

Hyperf协程并发编程实操指南
Hyperf协程并发编程实操指南

本专题深度解析 Hyperf 协程底层机制,解决协程环境下全局变量污染、Context 上下文丢失等核心痛点,提供规范化的 PHP 高并发编程实战代码建议。

200

2026.05.19

深入理解Hyperf AOP切面与注解使用
深入理解Hyperf AOP切面与注解使用

详尽介绍 Hyperf 依赖注入容器与 AOP 面向切面编程的使用技巧,包含自定义注解开发流程及注解不生效的排查方案,助力开发者掌握框架核心架构。

484

2026.05.19

Hyperf 数据库操作与连接池优化方案
Hyperf 数据库操作与连接池优化方案

针对 Hyperf Eloquent 模型在大数据量下的表现进行深度优化,讲解连接池断线重连、超时设置及事务处理等生产环境常见技术疑难。

264

2026.05.19

基于 Hyperf 的微服务架构集成实战
基于 Hyperf 的微服务架构集成实战

本专题涵盖 Hyperf 微服务全栈解决方案,包括服务注册与发现、配置中心集成、JsonRPC 调用以及分布式限流熔断的落地实践。

316

2026.05.19

Hyperf 高并发缓存与分布式系统应用
Hyperf 高并发缓存与分布式系统应用

讲解在协程模式下如何高效操作 Redis,实现高性能分布式锁、处理缓存击穿/雪崩问题,并提供基于 Hyperf 的分布式事务处理思路。

568

2026.05.19

Hyperf 项目部署运维与性能调优手册
Hyperf 项目部署运维与性能调优手册

聚焦 Hyperf 在生产环境的落地,包含 Docker 高效打包、Swoole 配置优化、常见的内存溢出(OOM)问题排查方法以及热更新方案。

525

2026.05.19

Hyperf PHP 微服务框架高性能开发实战
Hyperf PHP 微服务框架高性能开发实战

本专题围绕 Hyperf 框架展开,讲解微服务架构设计、协程异步处理、服务注册与发现、RPC 通信及性能优化策略。通过完整项目示例,帮助开发者构建高效、稳定、可扩展的 PHP 分布式服务系统。

196

2026.06.08

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

20

2026.11.05

热门下载

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

精品课程

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

共1课时 | 194人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn