こんにちはタガヤです。
いろいろとキャリアを積んだボクでも、日々勉強することがたくさんあります。
それだけ問題が起きてるってことですけども。
いやー、トラブルシューティングって楽しいですw(ドMか?)
さて今回見舞われたトラブルですが、
VineLinux4.2 に Tritonn をRPMでインストールして使ってます。
トランザクションが大目のテーブルには、InnoDBを使おうと思ったら、
InnoDBでCreateしても、作成されるテーブルはMyISAMになってしまいます。
mysql > SHOW INNODB STATUS;
するとエラーメッセージが表示されます。
ERROR 1235 (42000): Cannot call SHOW INNODB STATUS because skip-innodb is defined
skip-innodb なんて有効にしてたっけか?と思いつつ、
/etc/my.cnf をチェックします。
コメントアウトどころか、そんな記述さえありません。
もちろん、InnoDBの設定記述のコメントアウトは解除してます。
つまり、このエラーメッセージは間違いなのです。
さらに掘り下げて、InnoDBの状態を見てみます。
mysql > SHOW ENGINES;
mysql > SHOW VARIABLES LIKE 'have_innodb';
mysql > SHOW TABLE STATUS;
恐らくInnoDBが有効になっていないことがわかると思います。
可能性として、設定ファイルの記述内容がMySQL5に対応していない
場合が考えられますので、記述を変更します。
#innodb_data_file_path = ibdata1:10M:autoextend
innodb_data_file_path = ibdata1:10M:autoextend:max:128M
※設定内容は適宜読み替えてください
これでも改善が見られない場合、エラーログにヒントがあるかも知れません。
InnoDB: Error: data file /var/lib/mysql/ibdata1 is of a different size
ありました(汗)
どうせバックアップ取らなきゃいけないデータなんてないので、
一旦、コイツらを削除しました。
そしてmysql を再起動して、エラーをはかなくなったことを確認しました。
すると、やっと InnoDBが使えるようになりましたとさ。
参考になったサイトが英語だったので、わかりやすくはしょって日本語にしました。
http://www.xaprb.com/blog/2007/03/08/what-to-do-when-mysql-says-skip-innodb-is-defined/
2月 02
6月 3rd, 2009 at 10:03:59
[...] なぜ “skip-innodb is defined” って言われるの? | 株式会社ASENS http://blog.asens.jp/archives/37 ブックマーク: [...]