2009-07-16 6 views
2

私はInnoDBを使用する予定のWebアプリケーションを開発しています。しかし、私は、InnoDBがデフォルトで有効にならないことがあり、mysql configを有効にするために変更する必要があることを読んでいます...本当ですか?私のWebアプリケーションはクライアント自身が独自のWeb空間にインストールするので、私のアプリは可能な限り互換性があることを確認する必要があります。 InnoDBがデフォルトで無効になっている場合、回避策を探す必要があります。MySQLではデフォルトでINNODBが有効になっていますか?

答えて

5

InnoDBはMySQL 4.0以降、いくつかの特別なものを除いてほとんどのリリースでコンパイルされています。

一部の(非常に安い)ホスティングプロバイダは、少しメモリを使用するため、無効にすることを選択します。ほとんどの場合、彼らは少数派であるので、心配する必要はありません。

「デフォルトのストレージエンジン」という言葉は、あなたに関係する必要はありません。それは、指定しないと何が起こるかを意味します。すなわち

CREATE TABLE my_table (a int); 
- instead of - 
CREATE TABLE my_table (a int) ENGINE=INNODB; 

mysqldumpから復元する場合は、ENGINE情報が保持されます。 InnoDBが存在しない場合、MySQLは自動的にMyISAMを置き換えます(この置換を避けるためにデフォルトのsql_modeを変更しない限り)。 MySQLの5.5以来、InnoDBがデフォルトのストレージエンジンである(それが有効になります)

3

ご自分のサーバが使用してのInnoDBをサポートしているかどうかを確認することができます

SHOW [STORAGE] ENGINES

私も読んで:場合

を「WindowsのEssentialsのインストーラは、InnoDBのWindows上でのMySQLのデフォルトのストレージエンジンになりインストールされているサーバはInnoDBをサポートしています」

1

あなたはルート(または別のアカウントとしてSSH経由でサーバーにアクセスしてInnoDBを有効にすることができ、その後のsuやsudoのにを使用しますルートアクセスを得る)。それが完了すると、以下のようなエントリのためな/etc/my.cnf を確認してください。そのようなエントリが存在する

skip-inndob 

場合は、削除またはエントリをコメントアウトしてMySQLを再起動してください。 このようなエントリが存在しない場合は、さらに情報が必要なその他の問題があります。 InnoDBのが有効になると

することは、あなたはmy.cnfのファイルに次のように指定することで、それをデフォルトのテーブル型

default-table-type=innodb 
を作ることができます
関連する問題