CREATE TABLEでテーブルを作成すると、ストレートエンジンがMyISAMになっているのをInnoDBにする方法を以下に記します。
本記事で使用したOSはCentOS6でMySQLのバージョンは5.1.61になります。
my.cnfの[mysqld]の部分に以下の構文を追記します。
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)
以下にように[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)