Sonoma系统下Brew安装MariaDB与PHP后无法加载pdo_mysql求助
解决OSX Sonoma下Brew安装PHP 8.2后pdo_mysql扩展加载失败问题
问题分析
- PHP启动时提示找不到
pdo_mysql扩展文件,尝试pecl install pdo_mysql安装时,make阶段因找不到modules/*目录失败。 - 核心原因:PHP 8.0及以上版本中,
pdo_mysql已是内置扩展,无需通过pecl安装;pecl仓库中的pdo_mysql包为旧版本,与PHP 8.2不兼容,且brew安装的PHP默认已包含该扩展,仅需正确配置即可。
解决方案
1. 确认PHP扩展状态
执行以下命令,检查pdo_mysql是否已存在于PHP扩展列表中:
php -m | grep pdo_mysql # 或查看详细扩展信息 php -i | grep pdo_mysql
若输出包含pdo_mysql,说明扩展已存在,仅需修正配置;若未输出,继续下一步。
2. 修正php.ini配置
- 先找到当前PHP加载的配置文件路径:
php --ini
定位到Loaded Configuration File对应的路径(例如/usr/local/etc/php/8.2/php.ini)。
- 打开配置文件,做以下调整:
- 查找
extension=pdo_mysql,如果行首有;(注释符号),去掉;取消注释;如果无此行,直接添加:extension=pdo_mysql注意:PHP 7.2+版本无需添加
.so后缀,macOS环境下会自动识别扩展文件。 - 检查
extension_dir配置,确保路径正确(brew安装的PHP 8.2扩展路径通常为/usr/local/lib/php/pecl/20220829),若路径错误则修改,或直接注释掉该行,让PHP自动查找扩展路径。
- 查找
3. 清理pecl残留(可选)
如果之前尝试过pecl安装,清理残留避免冲突:
pecl uninstall pdo_mysql
同时检查php.ini中是否存在extension=pdo_mysql.so的错误配置行,如有则删除。
4. 重启PHP服务
若使用PHP-FPM,重启服务使配置生效:
brew services restart php@8.2
5. 验证修复效果
再次执行php -v,确认启动警告消失;也可通过以下脚本测试数据库连接:
<?php try { $dsn = 'mysql:host=127.0.0.1;port=3306;dbname=test'; $pdo = new PDO($dsn, 'root', '你的MariaDB密码'); echo "MariaDB连接成功"; } catch (PDOException $e) { die("连接失败: " . $e->getMessage()); }
保存为test.php后执行php test.php,验证连接是否正常。
内容的提问来源于stack exchange,提问作者muz the axe
相关产品推荐
相关产品推荐

