You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 11:05:26