デフォルトのストレージエンジンをInnoDBにする方法 †CREATE TABLEでテーブルを作成すると、ストレートエンジンがMyISAMになっているのをInnoDBにする方法を以下に記します。 関連資料 †my.cnfにdefault-storage-engineを追加する †my.cnfの[mysqld]の部分に以下の構文を追記します。 default-storage-engine=innodb 実行結果 †以下に実行結果を記します。 default-storage-engine=innodb設定前 †MyISAMエンジンであることが確認できます。 mysql> create table t1 (a int, b int); Query OK, 0 rows affected (0.01 sec) mysql> show table status \G *************************** 1. row *************************** Name: t1 Engine: MyISAM Version: 10 Row_format: Fixed Rows: 0 Avg_row_length: 0 Data_length: 0 Max_data_length: 2533274790395903 Index_length: 1024 Data_free: 0 Auto_increment: NULL Create_time: 2012-10-01 16:20:47 Update_time: 2012-10-01 16:20:47 Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: 1 row in set (0.00 sec) default-storage-engine=innodb設定後 †以下にように[mysqld]の部分にdefault-storage-engine=innodbを追記しました。 # cat /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 character-set-server = utf8 default-storage-engine=innodb [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [mysql] default-character-set=utf8 CentOSを使用しているのでserviceコマンドでmysqldを再起動 # service mysqld restart mysqld を停止中: [ OK ] mysqld を起動中: [ OK ] エンジンがInnoDBで作成されたことが確認できます。 mysql> create table t2 (a int, b int); Query OK, 0 rows affected (0.03 sec) mysql> show table status \G *************************** 1. row *************************** Name: t1 Engine: MyISAM Version: 10 Row_format: Fixed <snip> *************************** 2. row *************************** Name: t2 Engine: InnoDB Version: 10 Row_format: Compact Rows: 0 Avg_row_length: 0 Data_length: 16384 Max_data_length: 0 Index_length: 0 Data_free: 4194304 Auto_increment: NULL Create_time: 2012-10-01 16:27:14 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: 2 rows in set (0.00 sec) |