Drupal 9.3.8升级至10报错:Drupal\Driver\Database\mysql\Connection类未找到
Drupal 9.3.8升级至Drupal 10白屏:找不到
Drupal\Driver\Database\mysql\Connection类的解决方法 错误信息
Error: Class "Drupal\Driver\Database\mysql\Connection" not found in Drupal\Core\Database\Database::openConnection() (line 460 of /home/aul/www/core/lib/Drupal/Core/Database/Database.php). Drupal\Core\Database\Database::openConnection('default', 'default') (Line: 191) Drupal\Core\Database\Database::getConnection('default') call_user_func_array('Drupal\Core\Database\Database::getConnection', Array) (Line: 77) Drupal\Component\DependencyInjection\PhpArrayContainer->createService(Array, 'database') (Line: 179) Drupal\Component\DependencyInjection\Container->get('database', 1) (Line: 226) Drupal\Component\DependencyInjection\PhpArrayContainer->resolveServicesAndParameters(Array) (Line: 60) Drupal\Component\DependencyInjection\PhpArrayContainer->createService(Array, 'cache.container') (Line: 179) Drupal\Component\DependencyInjection\Container->get('cache.container') (Line: 576) Drupal\Core\DrupalKernel->getCachedContainerDefinition() (Line: 965) Drupal\Core\DrupalKernel->initializeContainer() (Line: 515) Drupal\Core\DrupalKernel->boot() (Line: 739) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
解决步骤
检查核心数据库驱动文件完整性
确认Drupal 10核心目录下core/modules/mysql/Driver/Database/mysql/Connection.php文件存在。如果缺失,重新下载对应版本的Drupal 10核心包,覆盖core目录(注意保留自定义配置和模块)。强制清除系统缓存
升级后的旧缓存可能导致类路径解析错误,执行以下操作之一:- 命令行执行:
drush cr - 手动删除
sites/default/files/php目录下所有缓存文件 - 删除
sites/default/files/cache目录中以container开头的缓存条目
- 命令行执行:
验证数据库配置正确性
打开sites/default/settings.php,检查数据库驱动配置:$databases['default']['default'] = [ 'driver' => 'mysql', // 确保此处为'mysql',而非'mysqli' // 其他数据库连接信息 ];Drupal 10统一使用
mysql驱动标识,底层依赖mysqli PHP扩展。确认PHP扩展满足要求
检查PHP环境是否启用了mysqli扩展(Drupal 10不再支持旧的mysql扩展),可以通过phpinfo()页面或命令php -m | grep mysqli验证,未启用则在php.ini中开启。完成剩余升级流程
访问网站/update.php路径,完成数据库更新和扩展适配步骤,确保所有升级任务执行完毕。
内容的提问来源于stack exchange,提问作者user209336
相关产品推荐
相关产品推荐

