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。您必须将它添加到所有这些。
使用最新的 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。您必须将它添加到所有这些。