MySQL 8.0 版的 Bugzilla 安装错误

Bugzilla installation error with MySQL version 8.0

使用最新的 MySQL 版本 8.0 为 Bugzilla 安装创建数据库时出错。

我正在使用以下配置为 Bugzilla 设置新服务器。

Bugzilla 版本:5.0.6

草莓 PERL 版本:5.28.2.1

MySQL 版本:8.0

我当前的设置在 MySQL 5.7.27 的旧版本上运行良好。但是不知何故必须迁移到 MySQL 8.0 的较新版本,因此我在数据库中创建 table 条目时遇到错误。

在google上,我发现了与'GROUPS'相关的内容。此关键字在 MySQL 8.0 中保留,bugzilla 试图使用该关键字。我不了解 MySQL 所以我无法解决这个问题。

下面是checksetup.pl

的输出

..... ....

正在检查 DBD-mysql (v4.001) 正常:找到 v4.050

正在检查 MySQL (v5.0.15) 正常:找到 v8.0.17

正在添加新的 table bz_schema...

正在初始化bz_schema...

正在创建 tables...

正在将 attach_data 最大大小转换为 100G...

为标准下拉字段设置选项:

优先级op_sys分辨率bug_statusrep_platformbug_severity

正在创建 ./data 目录...

正在创建 ./data/assets 目录...

正在创建 ./data/attachments 目录...

正在创建 ./data/db 目录...

正在创建 ./data/extensions 目录...

正在创建 ./data/mining 目录...

正在创建 ./data/webdot 目录...

正在创建 ./graphs 目录...

正在创建 ./skins/custom 目录...

正在创建 ./data/extensions/其他...

正在创建 ./data/mailer.testfile...

正在创建 ./Bugzilla/.htaccess...

正在创建 ./data/.htaccess...

正在创建 ./data/assets/.htaccess...

正在创建 ./data/attachments/.htaccess...

正在创建 ./data/webdot/.htaccess...

正在创建 ./graphs/.htaccess...

正在创建 ./lib/.htaccess...

正在创建 ./template/.htaccess...

正在创建 contrib/.htaccess...

正在创建 t/.htaccess...

正在创建 xt/.htaccess...

预编译模板...完成。

    DBD::mysql::db selectrow_array failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups where name = ''' at line 1 [for Statement "SELECT id FROM groups where name = ''"] at Bugzilla/Install/DB.pm line 2497.

    Bugzilla::Install::DB::_fix_group_with_empty_name() called at Bugzilla/Install/DB.pm line 358

    Bugzilla::Install::DB::update_table_definitions(HASH(0x34e8cb8)) called at checksetup.pl line 175

试试这个:

SELECT id FROM database_name.groups where name = ''

从Mysql开始8.0组为保留字。因此 'groups' 不能是 table 名称。您可以通过在 bugzilla 代码中的 table 名称 groups 周围加上反引号来修复它。

组仍然可以使用,但是,您需要在每次调用 "GROUPS" table 之前添加数据库名称。在 Bugzilla 标准安装的情况下,数据库名称是 'bugs'。来自 DB.pm 中第 1643 行的示例:

$dbh->do("ALTER TABLE groups DROP PRIMARY KEY");

更改为:

$dbh->do("ALTER TABLE bugs.groups DROP PRIMARY KEY");

大约有十几个 SQL 语句调用了 DB.pm 中的 table。您必须将它添加到所有这些。