Symfony 4.4数据库操作报错:could not find driver 求助
问题:PDO MySQL驱动找不到错误排查
错误信息
In AbstractMySQLDriver.php line 128: An exception occurred in driver: could not find driver In Exception.php line 18: could not find driver In PDOConnection.php line 40: could not find driver
当前配置信息
php.ini相关扩展配置
extension=bz2 extension=curl ;extension=ffi ;extension=ftp extension=fileinfo ;extension=gd extension=gettext ;extension=gmp ;extension=intl ;extension=imap ;extension=ldap extension=mbstring extension=exif ; Must be after mbstring as it depends on it extension=mysqli ;extension=oci8_12c ; Use with Oracle Database 12c Instant Client ;extension=oci8_19 ; Use with Oracle Database 19 Instant Client ;extension=odbc ;extension=openssl ;extension=pdo_firebird extension=pdo_mysql ;extension=pdo_oci ;extension=pdo_odbc extension=pdo_pgsql ;extension=pdo_sqlite ;extension=pgsql ;extension=shmop
数据库环境变量
.env:DATABASE_URL=mysql://root:@127.0.0.1:3306/food_cloud.env.local:'DATABASE_URL' => 'mysql://root:@127.0.0.1:3306/food_cloud',
排查解决步骤
确认修改的是当前PHP加载的php.ini
执行命令:php --ini查看输出中「Loaded Configuration File」的路径,确保你编辑的是这个文件,系统中可能存在多个php.ini副本,修改错误的文件不会生效。
验证PDO MySQL扩展是否安装并加载
执行命令:php -m检查输出列表中是否存在
pdo_mysql:- 若不存在:Linux系统需安装对应包(Debian/Ubuntu用
sudo apt install php-mysql,CentOS/RHEL用sudo yum install php-mysqlnd);Windows系统确认ext/php_pdo_mysql.dll存在,且php.ini中extension_dir正确指向ext目录(如extension_dir = "ext")。
- 若不存在:Linux系统需安装对应包(Debian/Ubuntu用
重启相关服务
修改php.ini后必须重启Web服务或PHP-FPM:- Apache:
sudo systemctl restart apache2 - Nginx+PHP-FPM:
sudo systemctl restart php-fpm && sudo systemctl restart nginx
- Apache:
清理框架缓存(若使用框架)
若基于Symfony等框架开发,执行缓存清理命令:php bin/console cache:clear同时验证环境变量是否生效:
php -r "echo getenv('DATABASE_URL');"检查版本兼容性
确认PHP版本与MySQL服务器版本兼容(如PHP7.4+适配MySQL5.7及以上),版本不匹配可能导致扩展加载失败。
内容的提问来源于stack exchange,提问作者Arsen Mkrtumian
相关产品推荐
相关产品推荐

