PHP7.4环境下最新版WordPress始终调用已弃用的mysql_connect函数问题求助
解决WordPress在PHP7.4下调用
mysql_connect()的致命错误 我明白你现在的困境——最新版WordPress理论上早就彻底放弃了过时的mysql_connect()函数,居然在PHP7.4环境里还触发这个错误,确实挺头疼的。结合你的环境(PHP7.4 + MySQL8.0 + 最新WordPress),咱们一步步排查解决:
1. 先确认WordPress核心文件是否完整或被篡改
有时候下载的安装包可能损坏,或者服务器上残留了旧版本的核心文件,导致数据库连接逻辑异常。建议:
- 去WordPress官方下载最新完整安装包
- 删除服务器上的
wp-admin和wp-includes文件夹 - 将新安装包里的
wp-admin和wp-includes上传到服务器(注意保留wp-content文件夹和wp-config.php文件,不要覆盖它们)
2. 检查wp-config.php的数据库配置
最新版WordPress会自动适配mysqli扩展,不需要手动定义WP_USE_EXT_MYSQL,甚至这个常量现在已经被废弃了。建议:
- 打开
wp-config.php,删除所有define('WP_USE_EXT_MYSQL', ...);的代码行 - 确保数据库连接参数是正确的标准格式:
define('DB_HOST', 'localhost'); // 根据你的数据库地址调整 define('DB_USER', '你的数据库用户名'); define('DB_PASSWORD', '你的数据库密码'); define('DB_NAME', '你的数据库名'); define('DB_CHARSET', 'utf8mb4'); define('DB_COLLATE', '');
3. 确认PHP扩展确实正常加载
你说已经启用了mysqli和mysqlnd,但最好实际验证一下:
- 在服务器根目录创建一个
phpinfo.php文件,内容为:<?php phpinfo(); ?> - 访问这个文件,搜索
mysqli和mysqlnd,确认这两个扩展的状态都是“已启用” - 注意:有些服务器的CLI和Web环境用的是不同的php.ini配置,你在CLI里启用的扩展可能没在Web环境生效,这种情况需要修改Web服务器对应的php.ini文件(比如Apache的php.ini或Nginx的php-fpm配置)
4. 排查主题/插件的旧代码问题
如果是从旧站点迁移过来的wp-content,或者新安装了不兼容的主题/插件,它们可能直接调用了mysql_connect():
- 将
wp-content/plugins重命名为plugins_old,wp-content/themes重命名为themes_old - 刷新站点,如果错误消失,说明是某个插件或主题的问题,再逐个恢复文件夹并排查具体是哪个插件/主题导致的
5. 服务器环境的特殊排查
有些主机商的服务器可能有特殊配置:
- 确认服务器没有禁用mysqli扩展,或者强制加载了旧的mysql兼容层(反而导致冲突)
- 如果是Apache环境,可以尝试在
.htaccess里添加:php_flag extension mysqli on - 必要时联系主机商,确认PHP7.4环境的mysqli扩展是否完全适配MySQL8.0
按照上面的步骤排查,大概率能定位到问题。从经验来看,核心文件损坏或者wp-config.php里的废弃常量残留是最常见的原因,建议先从这两点入手。
内容的提问来源于stack exchange,提问作者Gabryeu
相关产品推荐
相关产品推荐

