在使用最新的MySQL版本8.0创建Bugzilla安装数据库时出错。
我正在使用以下配置为Bugzilla设置新服务器。
Bugzilla版本:5.0.6
草莓PERL版本:5.28.2.1
MySQL版本:8.0
我当前的设置可以在旧版本的 MySQL 5.7.27 上正常工作。但是以某种方式必须迁移到MySQL 8.0的较新版本,因此在数据库中创建表条目时出现错误。
在Google上,我发现与“ GROUPS”有关。该关键字在MySQL 8.0和bugzilla中保留,试图使用该关键字。我不了解MySQL,所以无法弄清楚这个问题。
以下是 checksetup.pl
的输出... ....
检查DBD-mysql(v4.001)正常:找到v4.050
检查MySQL(v5.0.15),确定:找到v8.0.17
添加新表bz_schema ...
正在初始化bz_schema ...
正在创建表格...
正在将attach_data的最大大小转换为100G ...
设置标准下拉字段的选择:
op_sys优先级解决bug_status rep_platform bug_severity
正在创建./data目录...
正在创建./data/assets目录...
正在创建./data/attachments目录...
正在创建./data/db目录...
正在创建./data/extensions目录...
正在创建./data/mining目录...
正在创建./data/webdot目录...
正在创建./graphs目录...
正在创建./skins/custom目录...
正在创建./data/extensions/additional ...
正在创建./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
答案 0 :(得分:0)
从Mysql 8.0组开始是保留字。因此,“组”不能是表名。您可以通过在bugzilla代码中的表名groups
上加上反引号来解决此问题。
答案 1 :(得分:0)
组仍然可以使用,但是,您需要在每次对“ GROUPS”表的调用之前添加数据库名称。对于Bugzilla标准安装,数据库名称为'bugs'。来自DB.pm中第1643行的示例:
$dbh->do("ALTER TABLE groups DROP PRIMARY KEY");
更改为:
$dbh->do("ALTER TABLE bugs.groups DROP PRIMARY KEY");
在DB.pm中有大约12条SQL语句调用该表。您必须将其添加到所有这些文件中。
答案 2 :(得分:-1)
尝试一下:
SELECT id FROM database_name.groups where name = ''