yii2连接mysql必须同时启用pdo和pdo_mysql扩展:先用php -m确认cli环境,再通过phpinfo()核对web环境的php.ini路径及extension=pdo_mysql是否启用,二者必须一致且驱动名为'mysql'。

Yii2 要正常连接 MySQL 数据库,PDO 和 pdo_mysql 扩展必须同时启用。仅装了 PHP 或开了 PDO 不代表 pdo_mysql 就可用——它是一个独立的扩展模块,需单独确认并激活。
先确认当前是否已启用
打开终端(macOS/Linux)或命令提示符(Windows),执行:
php -m | grep -E "pdo|mysql"(macOS/Linux)
php -m(Windows,手动查找 pdo 和 pdo_mysql)
若输出中没有 pdo_mysql,或只有 pdo 没有具体驱动,则说明未启用。
Windows 下开启方法(XAMPP / phpEnv / 手动 PHP)
找到你正在使用的 php.ini 文件(通常在 XAMPP 的 \xampp\php\php.ini,phpEnv 在界面中点“配置”即可编辑):
- 搜索
extension=php_pdo_mysql.dll或extension=pdo_mysql - 去掉行首分号(如
;extension=pdo_mysql→extension=pdo_mysql) - 确认
extension_dir路径正确,例如:extension_dir = "C:\xampp\php\ext" - 保存文件,重启 Apache/Nginx 或 phpEnv 服务
macOS 下开启方法(Homebrew PHP)
Homebrew 安装的 PHP 配置文件路径类似:/opt/homebrew/etc/php/8.2/php.ini(版本号可能不同):
- 用文本编辑器打开对应 php.ini
- 取消注释:
extension=pdo_mysql(注意不是php_pdo_mysql.so) - 若提示
Unable to load dynamic library 'pdo_mysql',检查是否漏装 MySQL 扩展依赖:brew install mysql-client,再重装 PHP(brew reinstall php) - 保存后执行:
brew services restart php
验证是否生效
写一个简单测试脚本 test-pdo.php 放到 Web 根目录:
if (extension_loaded('pdo') && in_array('mysql', PDO::getAvailableDrivers())) {
echo '✅ PDO + pdo_mysql 已就绪';
} else {
echo '❌ 缺少 pdo_mysql 扩展';
}
?>
浏览器访问该文件,显示 ✅ 即表示成功。也可运行 php -i | grep -A5 "PDO drivers" 查看支持的驱动列表。











