InnoDBが無効でもENGINE=InnoDBでテーブル作成できちゃう

InnoDBオプションが無効でもENGINE=InnoDBって指定している
CREATE TABLE スクリプトが成功してしまいます。(汗

参考にさせて頂いたURLは↓。

http://webdba.blogspot.com/2007/10/innodbgatypeinnodb_30.html


MySQLのバージョンが異なるせいか、設定ファイルの書き方が微妙に異なる
ので注意して下さい。

mysql> create table hoge ( col1 varchar(4) ) type=innodb ;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

ただし、よくみると警告が表示されている。
Innodb を有効にして
 alter table test type=innodb ;
することでトランザクションが使えるようになる。

my.conf を変更して有効にする(mysqlの再起動が必要)


#skip-innodb
# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = C:/xampp/mysql/data/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = C:/xampp/mysql/data/
innodb_log_arch_dir = C:/xampp/mysql/data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size=16M
innodb_additional_mem_pool_size=2M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size=5M
innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
innodb_lock_wait_timeout=50


その後の調査で・・・

ソースからインストールしている場合、
mysql停止→configureのオプションに--with-innodb→make→make install→mysql起動
でinnodbエンジンが有効になりました。
なんと、my.cnfの修正はいりません。しかもconfigure --helpで--with-innodb
オプション出てこないし。。なんで?

0 コメント: