Saturday 30 March 2013

InnoDB Defined as an Unknown Table Engine

Symptoms


If InnoDB is not set for the MySQL database server, the following appears in the logs:
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 '‘have_innodb’' at line 1

Cause


The parameter skip-innodb may have been disabled in the MySQL configuration file. Starting from JIRA 4.3 and above, the InnoDB storage engine would have to be set as MySQL's default storage engine as to avoid data corruption

Resolution


Check to see whether you have InnoDB support enabled:

mysql>  show variables like 'have_innodb';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_innodb   | NO    |
+---------------+-------+
1 row in set (0.00 sec)

If the value above is DISABLED, then you would need to enable InnoDB.

Open up MySQL's configuration file. On various platforms, the configuration file may differ in file name and location:
        Windows: $MYSQL_INSTALL_DIRECTORY/my.ini
Linux/Unix: /etc/mysql/my.cnf

If the parameter skip-innodbis uncommented/exists, then just comment it out:
# skip-innodb

Shutdown MySQL server, delete/rename the MySQL logs to refresh the entire server's logging, and restart MySQL server:

Linux:

# /etc/init.d/mysql stop

# rm /var/lib/mysql/ib_logfile*

# /etc/init.d/mysql start

Windows:
Go to $MYSQL_INSTALL_DIRECTORY/data and either delete/move the log files with the prefix ib_logfile.

No comments:

Post a Comment