Why is InnoDB disabled? (SOLVED)

HoKe's picture

after installing Drupal 6 appliance i do have problem to enable InnoDB in MySQL.

can some one help me please?

Thx

liraz's picture

Innodb in enabled by default

InnoDB is enabled by default, you don't have to do anything.

If you log in to PhpMyAdmin and go to the "Storage Engines" section, you'll notice that InnoDB is not disabled.

See the MySQL manual for more information (13.2.3. InnoDB Configuration).

HoKe's picture

my.cnf

in my.cnf is skip-innodb commented out = enabled innodb in mysqld. I tried to run live system to see defaults and realised following:
mysql> show engine innodb status;
ERROR 1235 (42000): Cannot call SHOW INNODB STATUS because skip-innodb is defined
mysql>
please help ;) if possible
thx in advance
liraz's picture

I can't reproduce this...

I booted the version of the appliance you are using in live mode (I.e., without installation) and the InnoDB engine is enabled, as it should be.

If you want me to try and investigate/reproduce your problem you are going to have to give me a great deal more information:

* what version of the appliance are you using?
* are you using the appliance in live mode or installed to a hard drive?
* what kind of machine or virtual machine is running the appliance? how much memory does it have?
* did you reconfigure mysql in any way?
* could you try starting over and see what it takes to reproduce this problem?

HoKe's picture

demanded answers

no problem to give you requested information
turnkey-drupal6-2008.10.28-hardy-x86
Live mode. 8GB HDD ready but not used for installation
VM - VirtualBox-2.1.0-41146-Win_x86.msi
512 MB RAM
no reconfiguration
I did only following:
mysql -u root -p
inserted password
mysql> show engine innodb status;
ERROR 1235 (42000): Cannot call SHOW INNODB STATUS because
skip-innodb is defined
mysql> show engines;
InnoDB |DISABLED
HoKe's picture

news

finaly I found a solution.
/etc/init.d/mysql stop
mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0.bak
mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1.bak

/etc/init.d/mysql start
now it works! great ;)
liraz's picture

Your innodb log files were corrupt?

I did a little research on why your solution works and it seems that though InnoDB is enabled by default, MySQL seems to disable it automatically if your InnoDB log files get corrupted. When you remove them, they are recreated, allowing InnoDB to start again.

Thanks for sharing!

Guest's picture

Thanks!

Thanks for the tip! This solved the problem for me also. 

Guest's picture

THANKS!

Thank you, Hoke!

I'm not even using Drupal, and the solution you provided has saved me! Seens like a bug with the log files!

 

Thank you, again!

CaioToOn!

alon's picture

setting InnoDB as default mysql storage engine

As Liraz mentioned, InnoDB is enabled by default.
# mysql -uroot
> show engines;
 MyISAM     | DEFAULT
 InnoDB     | YES
 ...
But if you want it to be your default storage engine you have to specify it, for example:
# cat /etc/mysql/conf.d/storage_engine.cnf
[mysqld]
default-storage-engine = InnoDB

# /etc/init.d/mysql restart

# mysql -uroot
> show engines;
 MyISAM     | ENABLED
 InnoDB     | DEFAULT
 ...
Guest's picture

Thank you

I ran across this same problem w/ Joomal and your solution did the trick thanks so much!

Guest's picture

This helped me, too!

Thanks so much for this information! I had the same problem here.

Guest's picture

Thanks

This worked for me.  One thing to note was that I had to add default-storage-engine=innodb directly below the commented skip-innodb statement.  This is on CentOS 5.3.

 

Guest's picture

I don't have "skip-innodb statement" in my.cnf

Hi there. I'm having trouble enabling InnoDB.

mysql> show engines;
...
| InnoDB     | DISABLED
...

mysql> show engine innodb status;
ERROR 1235 (42000): Cannot call SHOW INNODB STATUS because skip-innodb is defined

But I don't have "skip-innodb statement" in my.cnf! It's a very small file, only a few lines.

cat /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

 

I already tryed removing files /var/lib/mysql/ib* and restarting mysqld, but the problem remains. I've updated mysql to the latest version using YUM (BTW, I'm using CentOS 5)

# mysql -V
mysql  Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (x86_64) using readline 5.1

 

Anyone can help me? Thanks.

Guest's picture

SOLVED

I solved my problem. It seem that is was a permission issue:

cat /var/log/mysqld.log

/usr/libexec/mysqld: Can't create/write to file '/tmp/ibJpS3fB' (Errcode: 13)

All I needed was a "chmod 777 /tmp" to get InnoDB working...

Thanks anyway

Guest's picture

Innodb Issue

I am unable to enable the innod engines support in my server, skip-innodb is not mentioned in the my.cnf file but while I execute the show engines; syntax I am getting the below result which says that InnoDB is Diasabled.

 

mysql> show engines;
+------------+------------+----------------------------------------------------------------------------------+
| Engine     | Support    | Comment                                                                          |
+------------+------------+----------------------------------------------------------------------------------+
| MyISAM     | DEFAULT    | Default engine as of MySQL 3.23 with great performance                           |
| MEMORY     | YES        | Hash based, stored in memory, useful for temporary tables                        |
| InnoDB     | DISABLED   | Supports transactions, row-level locking, and foreign keys                       |
 

And when I run the query mysql> show engine innodb status; the result was "ERROR 1235 (42000): Cannot call SHOW INNODB STATUS because skip-innodb is defined" even the skip-innodb was not mentioend in the cnf.

Skip-innodb was not mentioned in the my.cnf file by while I execute the show engine innodb status; I am getting the below result which says " Cannot call SHOW INNODB STATUS because skip-innodb is defined".

mysql> show engine innodb status;
ERROR 1235 (42000): Cannot call SHOW INNODB STATUS because skip-innodb is defined

Post new comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account, used to display your avatar.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <p> <span> <div> <h1> <h2> <h3> <h4> <h5> <h6> <img> <map> <area> <hr> <br> <br /> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <em> <b> <u> <i> <strong> <font> <del> <ins> <sub> <sup> <quote> <blockquote> <pre> <address> <code> <cite> <strike> <caption>

More information about formatting options