bugzilla安装错误:“InnoDB已禁用您的MySQL安装,Bugzilla需要启用InnoDb。”即使innodb已启用
我已经在我的windows7机器上安装了bugzilla4.2.5。当我ruuning的Bugzilla的checksetup.pl脚本,它显示出bugzilla安装错误:“InnoDB已禁用您的MySQL安装,Bugzilla需要启用InnoDb。”即使innodb已启用
Use of uninitialized value $innodb_on in string ne at Bugzilla/DB/Mysql.pm line no 330."InnoDB is disabled your MySQL installation. Bugzilla requires InnoDb to be enabled. Please enable it and then re-runchecksetup.pl".
没有在Mysql.pm由线表示的代码segement如下
my ($innodb_on) = @{$self->selectcol_arrayref(
q{SHOW VARIABLES LIKE '%have_innodb%'}, {Columns=>[2]})};
if ($innodb_on ne 'YES') {
die install_string('mysql_innodb_disabled');
}
我的MySQL安装的版本5.6.4-m7。我发现那个命令SHOW VARIABLES LIKE '%have_innodb%
返回一个空集。但SHOW ENGINES
甩了innodb,它启用并设置为默认值。
我想bugzilla会显示错误,因为SHOW VARIABLES LIKE '%have_innodb%
也会在Mysql.pm文件中的代码中返回空集。
http://bugs.mysql.com/bug.php?id=63383此链接显示“has_innodb”变量已从MySQL 5.6.1中移除。 这是否意味着我需要安装包含“have_innodb”变量的旧版本的mysql? 请帮我解决bugzilla安装中的问题。
我终于解决了这个问题。解决这个问题有两种选择:一种是安装比MySQL5.6更低版本的MySQL或更改Bugzilla源代码。在Mysql.pm中,而不是使用命令SHOW VARIABLES LIKE'%have_innodb%' 使用SHOW ENGINES检查innodb是否已启用并将该值设置为$ innodb_on变量。
thanx,这已经结束了我的痛苦。 – Harbir 2013-05-05 04:47:57
这里是Bugzilla的源代码变更期运用的MySQL 5.6或更高
请更换时:
my ($innodb_on) = @{$self->selectcol_arrayref(
q{SHOW VARIABLES LIKE '%have_innodb%'}, {Columns=>[2]})};
if ($innodb_on ne 'YES') {
die install_string('mysql_innodb_disabled');
}
有:
my ($innodb_on) =
grep{ $_->{engine} =~ m/InnoDB/i }
map {
my %hash;
@hash{ map { lc $_ } keys %$_ } = values %$_;
\%hash;
}
@{$self->selectall_arrayref("SHOW ENGINES", {Slice=>{}}) };
if ($innodb_on) {
if (!$innodb_on->{support} =~ m/YES|DEFAULT/i) {
die install_string('mysql_innodb_disabled');
}
}
这已经结束了我的错误 – Harbir 2013-05-05 04:47:19
我只是从“NE改变检查“到”eq“这是完全错误的,但显然会给出正确的行为。
是的,我安装MySQL5.6时遇到同样的问题。所以在我安装MySQL 5.5之后,问题就没有了。 – Sean 2013-03-17 23:15:42
是的,多数民众赞成在 – rakhi 2013-03-22 07:12:43