Fork me on GitHub
Subscribe 5

Ticket #1078 (fixed bug)

InnoDB check failed

  • Created: 2016-01-16 13:31:46
  • Reported by: artoodetoo
  • Assigned to: quy
  • Milestone: 1.5.10
  • Component: installation
  • Priority: normal

I have MariaDB 10 (MySQL successor) installed on Debian. And I cannot use install option MySQL Improved (InnoDB). I got an error:

Error: InnoDB does not seem to be enabled.

I found that this test is not worked as expected

		$result = $db->query('SHOW VARIABLES LIKE \'have_innodb\'');

It is no variable with such name, but InnoDB engine exists!

Accordingly this solution http://stackoverflow.com/a/10517292/272885 I changed test in install.php to

	// Check if InnoDB is available
	if ($db_type == 'mysql_innodb' || $db_type == 'mysqli_innodb')
	{
		$result = $db->query('SELECT SUPPORT FROM INFORMATION_SCHEMA.ENGINES WHERE ENGINE = \'InnoDB\'');
		list ($result) = $db->fetch_row($result);
		if (!in_array($result, array('YES', 'DEFAULT')))
			error($lang_install['InnoDB off']);
	}

and finish installation successfully.

History

artoodetoo 2016-01-16 13:33:50

  • Description changed. (Diff)

Franz 2016-01-16 16:46:36

Will that work with all MySQL versions we support, too?

chris98 2016-01-16 16:57:42

I second this. I use MySQL 5.5 locally, and I get the exact same error installing InnoDB there. I use it fine with my fork, so personally I never understood it.

But the same does happen with me.

artoodetoo 2016-01-16 18:07:08

AFAIK, InnoDB started with MySQL 5.1. As well as INFORMATION_SCHEMA.ENGINES table. So, when we cannot detect InnoDB support, we cannot use it. And vice versa. big_smile

I have check command

SELECT SUPPORT FROM INFORMATION_SCHEMA.ENGINES WHERE ENGINE = 'InnoDB'

with MySQL 5.5 and it works.

Studio384 2016-01-16 18:22:16

InnoDB is the default since MySQL 5.1 but is also available on MySQL 5.0.

artoodetoo 2016-01-16 18:29:32

@Studio384, InnoDB is default since v5.5.
https://en.wikipedia.org/wiki/InnoDB

Variable have_innodb was removed since MySQL 5.6.
http://dev.mysql.com/doc/refman/5.5/en/ … ave_innodb

Studio384 2016-01-16 22:50:53

OW yeah, my bad.

artoodetoo 2016-01-17 10:45:18

I.M.H.O., the last doubt is about the time InnoDB started from. There are some messages about InnoDB support in MySQL 5.0, but it seems to be experimental made from source distributions. Not as standard plugin or built-in feature.

I run historical research on innodb.com (official InnoDB site which is redirects to mysql.org for now). In Web Arhive snapshot I found:

The early adopter release of InnoDB Plugin for MySQL is available for MySQL 5.1 and later, in source and binary (for most platforms) and is licensed under the GPLv2.

https://web.archive.org/web/20081217021 … db_plugin/

So, plugin and table was started at the same MySQL version. I think checking table `ENGINES` is sufficient, credible and version-independent evidence of InnoDB support.

Comment edited 1 times (Diff)

Franz 2016-01-17 14:10:51

  • Milestone set to 1.5.10.

Great, thanks for researching this!

quy 2016-01-17 19:01:09

Commit e5092f9 to fluxbb 1.5-next

#1078 Update query to check for InnoDB availability

Franz 2016-01-17 19:43:13

Commit 5bee150 to fluxbb 1.5-next

Merge pull request #194 from Quy/1078-innodb

#1078 Update query to check for InnoDB availability

quy 2016-01-17 19:53:33

  • Owner set to quy.
  • Status changed from open to fixed.

Thanks!

quy 2016-06-16 07:54:20

Commit 1641ba4 to fluxbb master

#1078 Update query to check for InnoDB availability