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

MariaDB安装X3.5出错,数据库版本判断问题

284 2
发表于 2023-9-27 19:22:31 | 查看全部 阅读模式

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

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

×
install/include/install_mysqli.php文件第32行


                if ($this->version() < '5.5.3') {
                        $this->halt('MySQL version must be 5.5.3 or greater');
                }


如果是MariaDB则安装失败,原因是MariaDB的version带个小尾巴,不是5.5.3这种
注解掉即可安装成功
我知道答案 回答被采纳将会获得1 贡献 已有0人回答
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-17 15:07:16 | 查看全部
在Discuz! X3.5的安装过程中,如果使用的是MariaDB数据库,可能会遇到数据库版本判断的问题。这是因为MariaDB的版本号格式与MySQL不同,导致安装程序无法正确识别MariaDB的版本号。

### 问题分析
在`install/include/install_mysqli.php`文件的第32行,安装程序会检查数据库的版本号是否大于或等于5.5.3。如果版本号低于5.5.3,安装程序会抛出错误并停止安装。

  1. if ($this->version() < '5.5.3') {
  2.     $this->halt('MySQL version must be 5.5.3 or greater');
  3. }
复制代码


MariaDB的版本号通常带有一些额外的信息,例如`10.3.34-MariaDB`,这会导致版本号比较失败,从而引发安装错误。

### 解决方案
为了解决这个问题,你可以通过以下两种方式来处理:

#### 1. 修改版本判断逻辑
你可以修改`install_mysqli.php`文件中的版本判断逻辑,使其能够正确识别MariaDB的版本号。具体来说,你可以提取版本号中的数字部分进行比较。

  1. $version = $this->version();
  2. // 提取版本号中的数字部分
  3. preg_match('/^(\d+\.\d+\.\d+)/', $version, $matches);
  4. $versionNumber = $matches[1];

  5. if ($versionNumber < '5.5.3') {
  6.     $this->halt('MySQL version must be 5.5.3 or greater');
  7. }
复制代码


#### 2. 注解掉版本判断代码
如果你确定你的MariaDB版本是符合要求的(即大于或等于5.5.3),你可以直接注解掉这段版本判断代码,以跳过版本检查。

  1. // if ($this->version() < '5.5.3') {
  2. //     $this->halt('MySQL version must be 5.5.3 or greater');
  3. // }
复制代码


### 注意事项
- 在修改代码之前,请确保你已经备份了相关文件,以防止修改错误导致安装失败。
- 如果你选择注解掉版本判断代码,请确保你的MariaDB版本确实符合要求,否则可能会导致安装后的系统不稳定或出现其他问题。

### 总结
通过修改版本判断逻辑或注解掉相关代码,你可以解决Discuz! X3.5在MariaDB上安装时遇到的版本判断问题。如果你对代码修改不熟悉,建议在修改前咨询有经验的开发者或参考相关文档。

如果你有其他问题或需要进一步的帮助,请随时联系我!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-20 18:21:05 | 查看全部
在Discuz! X3.5的安装过程中,如果使用的是MariaDB数据库,可能会遇到版本判断的问题。这是因为MariaDB的版本号格式与MySQL不同,导致安装程序无法正确识别MariaDB的版本。

### 问题分析
在`install/include/install_mysqli.php`文件的第32行,安装程序会检查数据库的版本是否大于或等于5.5.3。MariaDB的版本号通常带有额外的信息(例如`10.3.34-MariaDB`),这会导致版本判断失败,从而抛出错误。

### 解决方案
你可以通过以下两种方式来解决这个问题:

#### 1. 修改版本判断逻辑
你可以修改`install_mysqli.php`文件中的版本判断逻辑,使其能够正确识别MariaDB的版本。具体步骤如下:

1. 打开`install/include/install_mysqli.php`文件。
2. 找到第32行的代码:
  
  1. if ($this->version() < '5.5.3') {
  2.        $this->halt('MySQL version must be 5.5.3 or greater');
  3.    }
复制代码

3. 修改为:
  
  1. $version = $this->version();
  2.    if (strpos($version, 'MariaDB') !== false) {
  3.        // 如果是MariaDB,跳过版本检查
  4.    } else if (version_compare($version, '5.5.3', '<')) {
  5.        $this->halt('MySQL version must be 5.5.3 or greater');
  6.    }
复制代码


这样修改后,安装程序会先判断数据库是否为MariaDB,如果是MariaDB则跳过版本检查,否则继续检查MySQL版本。

#### 2. 注解掉版本检查代码
如果你确定MariaDB的版本符合要求,可以直接注解掉版本检查的代码。具体步骤如下:

1. 打开`install/include/install_mysqli.php`文件。
2. 找到第32行的代码:
  
  1. if ($this->version() < '5.5.3') {
  2.        $this->halt('MySQL version must be 5.5.3 or greater');
  3.    }
复制代码

3. 将其注释掉:
  
  1. // if ($this->version() < '5.5.3') {
  2.    //     $this->halt('MySQL version must be 5.5.3 or greater');
  3.    // }
复制代码


这样修改后,安装程序将不再检查数据库版本,直接进行安装。

### 注意事项
- 在修改代码之前,建议备份相关文件,以防修改错误导致安装失败。
- 如果你选择注解掉版本检查代码,请确保你的MariaDB版本确实符合Discuz! X3.5的要求(通常MariaDB 10.x版本都是兼容的)。

通过以上方法,你应该能够成功安装Discuz! X3.5并使用MariaDB作为数据库。如果你有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:3.17.182.90,GMT+8, 2025-4-11 08:26 , Processed in 0.310935 second(s), 77 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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