Dreamhost环境下PHP连接MySQL报could not find driver错误如何解决
问题排查与解决指引
代码层面错误修正
- test1的PDO连接DSN格式错误:PDO MySQL的正确前缀是
mysql:而非mysqli:,错误的前缀会直接触发驱动不存在报错,修正后的DSN写法为:$dsn = "mysql:host=$host;dbname=$db;charset=utf8mb4"; - test2的非核心语法问题:PHP字符串拼接需用
.而非+,该问题不影响驱动加载,但会导致连接失败后报错信息输出异常。
核心问题:PHP未安装/启用MySQL相关扩展
test3直接返回mysqli类不存在、test2调用mysqli_connect也报错,可100%确认当前运行环境的PHP既没有启用mysqli扩展,也没有启用pdo_mysql扩展,这是报错的核心原因。
具体操作步骤
- 第一步:确认扩展状态
打开你提供的phpinfo页面,分别搜索pdo_mysql和mysqli两个字段,若没有对应条目、或状态为禁用,即可确认扩展异常。 - 第二步:启用扩展
- 若为自主管理的服务器:
- Debian/Ubuntu系统:安装对应PHP版本的mysql扩展包,以PHP8.1为例执行
apt install php8.1-mysql,安装完成后重启php-fpm和web服务。 - CentOS/RHEL系统:执行
yum install php-mysqlnd,安装完成后重启对应服务。
- Debian/Ubuntu系统:安装对应PHP版本的mysql扩展包,以PHP8.1为例执行
- 若为Dreamhost这类托管主机:
直接联系平台客服,要求为你当前使用的PHP版本启用mysqli和pdo_mysql扩展即可,托管环境通常不支持用户自行修改PHP扩展配置。
- 若为自主管理的服务器:
- 第三步:功能验证
扩展启用完成后,运行修正后的测试用例即可验证连接是否正常。
内容的提问来源于stack exchange,提问作者Monkeework
相关产品推荐
相关产品推荐

