thinkphp 8 连不上 mysql 时,先从实际运行应用的 php 环境确认 pdo_mysql 是否加载,再用相同主机、端口和账号核对 mysql 连接。驱动缺失、认证失败和网络连接失败对应不同的检查方向。
确认运行应用的 PHP 加载了驱动
在项目所在环境执行。命令行输出只代表 CLI,网页如果由 PHP-FPM 运行,还要检查对应 FPM 进程的版本和配置。
php -v php --ini php --ri pdo_mysql

如果应用报 could not find driver,优先确认 Web 进程是否加载 pdo_mysql。扩展启用后按部署方式重新加载对应进程。
用相同的连接参数检查 MySQL
核对 config/database.php 实际选中的连接,以及它从环境读取的主机、端口、数据库名和用户。命令里的数据库和账号替换为测试环境实际值。
安装、修复、更新或打包一个基于 Python 和 PyMySQL 实现的 Windows `mysql` 命令。适用于用户希望在 PowerShell/CMD 中输入 `mysql` 时重定向到 Python 实现、需要交互式输入 MySQL 连接信息、需要同步到当前用户本地 bin 目录,或需要将该能力封装成可公开复用的 Codex skill。
立即学习“PHP免费学习笔记(深入)”;
mysql -h 127.0.0.1 -P 3306 -u app_user -p app_db -e 'SELECT 1 AS ok;'
-p 会提示输入密码。常见 1045 指向认证或账号来源限制,2002 先检查主机、端口、套接字和服务状态。以完整异常信息为准。
从应用里验证当前连接
在本地或受控测试环境,通过已有受保护的控制器执行只读探针。用完移除探针。
$result = \think\facade\Db::query('SELECT 1 AS ok');
return json($result);返回结果应含 ok 值 1。若客户端命令成功而探针失败,对照应用实际选中的连接、部署配置和运行身份,详细异常从服务端日志查看。


















