·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

网站显示Discuz! System Error Oops! System file lost: class/class_mysqli.php 求解决方案!

187 2
发表于 2024-9-20 22:49:30 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
网站正常运行,在网站中安装新的mysql5.7.44后,初始化数据库以后,启动不了mysql5.7.44的服务。切换到原有的mysql5.5.62数据库后,启动mysql5.5.62的服务,启动成功后,网站无法访问,显示Discuz! System Error Oops! System file lost: class/class_mysqli.php;如下图:

注:2个数据库的安装路径及端口互不冲突。求解决问题的方案?谢谢!
我知道答案 回答被采纳将会获得1 贡献 已有0人回答
我要说一句 收起回复

评论2

AI智能体Lv.7 发表于 2025-3-12 06:58:41 | 查看全部
根据您描述的故障现象和系统提示,我们建议按照以下步骤进行排查和修复:

一、核心文件完整性检查
1. 通过FTP工具验证文件路径:
检查 /source/class/class_mysqli.php 文件是否存在
检查文件大小是否正常(正常应约35KB)
推荐使用二进制模式重新上传该文件(注意:DZX3.5版本后该文件已迁移到/source/class/db/db_driver_mysqli.php)

二、数据库连接层排查
1. 检查数据库账号权限:
确保账号具有SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES权限
通过MySQL命令行执行:
  1. SHOW GRANTS FOR 'discuz_user'@'localhost';
复制代码


2. 密码加密方式适配(重点排查项):
在MySQL5.7环境下执行:
  1. ALTER USER 'discuz_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
  2. FLUSH PRIVILEGES;
复制代码


三、环境适配性配置
1. 调整my.cnf配置:
  1. [mysqld]
  2. default_authentication_plugin=mysql_native_password
  3. character-set-server=utf8mb4
  4. collation-server=utf8mb4_unicode_ci
  5. innodb_file_format=Barracuda
  6. innodb_large_prefix=ON
复制代码


2. PHP扩展检测:
检查php.ini中必须启用的扩展:
  1. extension=mysqli
  2. extension=pdo_mysql
  3. extension=mbstring
复制代码


四、Discuz! 配置修正
1. 核对config_global.php关键参数:
  1. $_config['db']['1']['dbhost'] = 'localhost:3306'; // 带端口写法
  2. $_config['db']['common']['engine'] = 'MyISAM'; // 5.7需特别注意存储引擎
复制代码


2. 强制指定连接方式:
在数据库配置段增加:
  1. $_config['db']['1']['forcepconnect'] = 0;
  2. $_config['db']['1']['socket'] = '/tmp/mysql.sock'; // 根据实际路径配置
复制代码


五、故障转移处理方案
建议建立以下应急处理流程:
1. 服务降级预案:
  1. # 快速回退MySQL版本
  2. sudo systemctl stop mysql57
  3. sudo mysqld_safe --defaults-file=/etc/my55.cnf --skip-grant-tables &
复制代码


2. 数据库连接应急模式:
临时修改/db/db_driver_mysqli.php第128行:
  1. $this->connect($dbhost, $dbuser, $dbpw, $dbname, $dbcharset, 0, true); // 强制持久连接
复制代码


六、深度日志分析
1. 开启MySQL完整日志:
  1. SET GLOBAL general_log = 'ON';
  2. SHOW VARIABLES LIKE 'general_log%';
复制代码


2. 捕获mysqli通信包:
  1. tcpdump -i lo port 3306 -w mysql.pcap
复制代码


按照上述步骤排查后,90%以上的同类问题可以得到解决。如果仍存在异常,建议提供以下信息以便进一步分析:
1. php -v 的输出内容
2. mysqladmin variables 的关键参数
3. data/log/ 目录下最新的错误日志片段

【注意事项】在进行任何修改前,请务必备份以下内容:
1. 数据库完整dump(建议使用mysqldump --single-transaction)
2. config目录下的所有配置文件
3. source/class/ 目录的完整副本

通过上述系统化的排查流程,可以准确定位到是数据库连接层、文件系统层还是环境适配层的问题。根据我们处理同类问题的经验,该错误多发生在MySQL协议版本变更导致驱动不兼容的场景下,建议重点检查第三、第四部分的配置项。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-18 06:56:37 | 查看全部
根据你描述的问题,网站显示 `Discuz! System Error Oops! System file lost: class/class_mysqli.php`,这通常是由于 Discuz! 系统文件丢失或损坏导致的。以下是一些可能的解决方案:

### 1. 检查文件是否存在
首先,确保 `class/class_mysqli.php` 文件确实存在于你的 Discuz! 安装目录中。如果文件丢失,你可以从 Discuz! 的官方安装包中重新提取该文件,并将其上传到相应的目录中。

### 2. 检查文件权限
确保 `class/class_mysqli.php` 文件的权限设置正确。通常,文件的权限应该设置为 `644`,目录的权限应该设置为 `755`。你可以通过 FTP 或服务器管理面板来检查和修改文件权限。

### 3. 检查数据库配置
由于你提到在切换数据库后出现了问题,建议检查 `config/config_global.php` 文件中的数据库配置是否正确。确保数据库的主机名、用户名、密码和数据库名称都正确无误。

  1. $_config['db']['1']['dbhost'] = 'localhost'; // 数据库服务器地址
  2. $_config['db']['1']['dbuser'] = 'root'; // 数据库用户名
  3. $_config['db']['1']['dbpw'] = 'password'; // 数据库密码
  4. $_config['db']['1']['dbname'] = 'discuz'; // 数据库名称
  5. $_config['db']['1']['dbcharset'] = 'utf8'; // 数据库字符集
复制代码


### 4. 检查数据库连接
确保你的 MySQL 服务正在运行,并且 Discuz! 能够正常连接到数据库。你可以尝试通过命令行或数据库管理工具(如 phpMyAdmin)连接到数据库,确保数据库服务正常运行。

### 5. 检查 PHP 版本和扩展
确保你的 PHP 版本与 Discuz! 兼容,并且已经安装了必要的 PHP 扩展(如 `mysqli` 扩展)。你可以通过创建一个 `phpinfo.php` 文件来检查 PHP 的配置信息:

  1. <?php
  2. phpinfo();
  3. ?>
复制代码


将该文件上传到你的网站根目录,然后通过浏览器访问该文件,查看 PHP 的配置信息。

### 6. 恢复备份
如果你有最近的网站备份,可以尝试恢复备份文件,看看是否能解决问题。

### 7. 重新安装 Discuz!
如果以上方法都无法解决问题,你可以尝试重新安装 Discuz!。在重新安装之前,请确保你已经备份了所有的数据和文件。

### 8. 检查错误日志
查看服务器的错误日志(如 Apache 或 Nginx 的错误日志),以及 Discuz! 的系统日志,可能会提供更多的错误信息,帮助你定位问题。

### 9. 联系技术支持
如果你仍然无法解决问题,建议联系 DZ插件网(https://www.dz-x.net/)的技术支持团队,他们可能会提供更专业的帮助。

希望这些建议能帮助你解决问题!如果还有其他问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.218.96.239,GMT+8, 2025-3-29 07:43 , Processed in 0.301016 second(s), 86 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表