Bug #49851 --skip-innodb without any effect

Submitted: 21 Dec 2009 16:42 Modified: 22 Dec 2009 2:02
Reporter: Roland Rosenfeld Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:5.1.41 OS:Solaris (5.10)
Assigned to: CPU Architecture:Any

[21 Dec 2009 16:42] Roland Rosenfeld
Description:
It seems, that in version 5.1.41 (from mysql-5.1.41-solaris10-sparc-64bit.tar.gz) skip-innodb does not have any effect, neither in my.cnf nor as --skip-innodb option to a manually started mysqld.

The workaround is innodb=OFF in my.cnf.

How to repeat:
Enter skip-innodb to your my.cnf and wonder why the innodb engine is still active.

Suggested fix:
Change the documentation, and tell the user to use innodb=OFF instead of skip-innodb.

Give a warning to the error log, that skip-innodb is no longer supported instead of just doing nothing...
[21 Dec 2009 16:51] Valeriy Kravchuk
Strange, but with current 5.1.43 from bzr built from sources --skip-innodb works as expected for me:

77-52-7-73:5.1 openxs$ bin/mysqld_safe --skip-innodb &
[1] 61830
77-52-7-73:5.1 openxs$ 091221 18:48:52 mysqld_safe Logging to '/Users/openxs/dbs/5.1/var/77-52-56-187.dialup.umc.net.ua.err'.
chown: /Users/openxs/dbs/5.1/var/77-52-56-187.dialup.umc.net.ua.err: Operation not permitted
091221 18:48:52 mysqld_safe Starting mysqld daemon with databases from /Users/openxs/dbs/5.1/var

77-52-7-73:5.1 openxs$ bin/mysql -uroot test
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.43-debug Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show engines;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                        | Transactions | XA   | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| ndbcluster | NO      | Clustered, fault-tolerant tables                               | NULL         | NULL | NULL       |
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| BLACKHOLE  | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| CSV        | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| FEDERATED  | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| ARCHIVE    | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| InnoDB     | NO      | Supports transactions, row-level locking, and foreign keys     | NULL         | NULL | NULL       |
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance         | NO           | NO   | NO         |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)

mysql> show engine innodb status\G
ERROR 1286 (42000): Unknown table engine 'innodb'

See http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#option_mysqld_innodb also.

How you checked that it does not work?
[21 Dec 2009 18:46] Roland Rosenfeld
I checked it exactly like you:

$ bin/mysqld_safe --skip-innodb &
[1] 1894
091221 19:35:49 mysqld_safe Logging to '/home/mysql/data/core.err'.
091221 19:35:49 mysqld_safe Starting mysqld daemon with databases from /home/mysql/data

$ bin/mysql -uroot -p
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.41 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show engines;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                        | Transactions | XA   | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| BLACKHOLE  | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| CSV        | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| FEDERATED  | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| ARCHIVE    | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance         | NO           | NO   | NO         |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
8 rows in set (0.00 sec)

As you can see, InnoDB is enabled and the above --skip-innodb is ignored.
As you can see from the log file name my current /etc/my.cnf is used but if you look for innodb in this file, you only see inactive lines at the moment:

$ grep -i innodb /etc/my.cnf
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /usr/local/mysql/data/
#innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
#innodb_log_group_home_dir = /usr/local/mysql/data/
#innodb_log_arch_dir = /usr/local/mysql/data/
#innodb_buffer_pool_size = 384M
#innodb_additional_mem_pool_size = 20M
#innodb_log_file_size = 100M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
#skip-innodb
#innodb=OFF

As mentioned in my bug report innodb=OFF really switches off innodb while skip-innodb does not have any effekt in this installation.
No idea why my installation is broken, but as I wrote before it's the standard package from dev.mysql.com: mysql-5.1.41-solaris10-sparc-64bit.tar.gz.
I just tried out the 32bit version (mysql-5.1.41-solaris10-sparc.tar.gz) and it also ignores --skip-innodb.
[22 Dec 2009 2:02] Davi Arnaut
Closed as a duplicate of Bug#46043.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.040 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.