一般情況下,mysql會預設提供多種存儲引擎,可以通過下面的檢視:
1)檢視mysql是否安裝了innodb插件。
通過下面的指令結果可知,已經安裝了innodb插件。
1
2
3
4
5
6
7
8
9
10
11
12
13
<code>mysql> show plugins;</code>
<code>+</code><code>------------+--------+----------------+---------+---------+</code>
<code>| </code><code>Name</code> <code>| Status | Type | Library | License |</code>
<code>| binlog | ACTIVE | STORAGE ENGINE | </code><code>NULL</code> <code>| GPL |</code>
<code>| partition | ACTIVE | STORAGE ENGINE | </code><code>NULL</code> <code>| GPL |</code>
<code>| CSV | ACTIVE | STORAGE ENGINE | </code><code>NULL</code> <code>| GPL |</code>
<code>| MEMORY | ACTIVE | STORAGE ENGINE | </code><code>NULL</code> <code>| GPL |</code>
<code>| InnoDB | ACTIVE | STORAGE ENGINE | </code><code>NULL</code> <code>| GPL |</code>
<code>| MyISAM | ACTIVE | STORAGE ENGINE | </code><code>NULL</code> <code>| GPL |</code>
<code>| MRG_MYISAM | ACTIVE | STORAGE ENGINE | </code><code>NULL</code> <code>| GPL |</code>
<code>7 </code><code>rows</code> <code>in</code> <code>set</code> <code>(0.00 sec)</code>
----------------------------------------------------------------------
如果發現沒有安裝innodb插件,可以執行下面語句進行安裝:
mysql> install plugin innodb soname 'ha_innodb.so';
2)檢視mysql現在已提供什麼存儲引擎:
<code>mysql> show engines;</code>
<code>+</code><code>------------+---------+------------------------------------------------------------+--------------+------+------------+</code>
<code>| Engine | Support | Comment | Transactions | XA | Savepoints |</code>
<code>| MRG_MYISAM | YES | Collection </code><code>of</code> <code>identical MyISAM tables | </code><code>NO</code> <code>| </code><code>NO</code> <code>| </code><code>NO</code> <code>|</code>
<code>| CSV | YES | CSV storage engine | </code><code>NO</code> <code>| </code><code>NO</code> <code>| </code><code>NO</code> <code>|</code>
<code>| MyISAM | </code><code>DEFAULT</code> <code>| </code><code>Default</code> <code>engine </code><code>as</code> <code>of</code> <code>MySQL 3.23 </code><code>with</code> <code>great performance | </code><code>NO</code> <code>| </code><code>NO</code> <code>| </code><code>NO</code> <code>|</code>
<code>| InnoDB | YES | Supports transactions, row-</code><code>level</code> <code>locking, </code><code>and</code> <code>foreign</code> <code>keys | YES | YES | YES |</code>
<code>| MEMORY | YES | Hash based, stored </code><code>in</code> <code>memory, useful </code><code>for</code> <code>temporary</code> <code>tables | </code><code>NO</code> <code>| </code><code>NO</code> <code>| </code><code>NO</code> <code>|</code>
<code>5 </code><code>rows</code> <code>in</code> <code>set</code> <code>(0.00 sec)</code>
3)檢視mysql目前預設的存儲引擎:
<code>mysql> show variables </code><code>like</code> <code>'%storage_engine%'</code><code>;</code>
<code>+</code><code>----------------+--------+</code>
<code>| Variable_name | Value |</code>
<code>| storage_engine | MyISAM |</code>
<code>1 row </code><code>in</code> <code>set</code> <code>(0.00 sec)</code>
4)看某個表用了什麼引擎(在顯示結果裡參數engine後面的就表示該表目前用的存儲引擎):
mysql> show create table 表名;
<code>mysql> show </code><code>create</code> <code>table</code> <code>wx_share_log;</code>
<code>+</code><code>--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+</code>
<code>| </code><code>Table</code> <code>| </code><code>Create</code> <code>Table</code> <code>|</code>
<code>| wx_share_log | </code><code>CREATE</code> <code>TABLE</code> <code>`wx_share_log` (</code>
<code> </code><code>`id` </code><code>int</code><code>(11) </code><code>NOT</code> <code>NULL</code> <code>AUTO_INCREMENT COMMENT </code><code>'微信分享日志自增ID'</code><code>,</code>
<code> </code><code>`reference_id` </code><code>int</code><code>(11) </code><code>NOT</code> <code>NULL</code> <code>COMMENT </code><code>'推薦的經紀人id'</code><code>,</code>
<code> </code><code>`create_time` datetime </code><code>NOT</code> <code>NULL</code> <code>COMMENT </code><code>'建立時間'</code><code>,</code>
<code> </code><code>PRIMARY</code> <code>KEY</code> <code>(`id`)</code>
<code>) ENGINE=MyISAM AUTO_INCREMENT=13 </code><code>DEFAULT</code> <code>CHARSET=utf8 |</code>
5)如何将MyISAM庫導成INNODB引擎格式的:
在備份出的xxx.sql檔案中把ENGINE=MyISAM全換成ENGINE=INNODB
再次導入就可以了。
6)轉換表的指令:
mysql> alter table 表名 engine=innodb;
有上面可以查到看,本機mysql使用的存儲引擎是預設的MyISAN,由于業務需要,先要将其存儲引擎改為Innodb。
操作記錄如下:
1)以安全模式關閉mysql
[root@dev mysql5.1.57]# mysqladmin -uroot -p shutdown
Enter password:
[root@dev mysql5.1.57]# ps -ef|grep mysql
2)備份my.cnf
[root@dev mysql5.1.57]# cp my.cnf my.cnf.old
3)修改my.cnf配置檔案
[root@dev mysql5.1.57]# vim my.cnf
.....
[mysqld] //在這個配置區域添加下面一行,指定存儲引擎為innodb
default-storage-engine = InnoDB
4)删除/mysql/data目錄下的ib_logfile0,ib_logfile1。删除或剪切到别處都行。
[root@dev var]# mv ib_logfile0 ib_logfile1 /tmp/back/
5)啟動mysql,登陸mysql驗證存儲引擎是否已切換
[root@dev var]# /Data/app/mysql5.1.57/bin/mysqld_safe --defaults-file=/Data/app/mysql5.1.57/my.cnf &
<code>| storage_engine | InnoDB |</code>
***************當你發現自己的才華撐不起野心時,就請安靜下來學習吧***************
本文轉自散盡浮華部落格園部落格,原文連結:http://www.cnblogs.com/kevingrace/p/6230523.html,如需轉載請自行聯系原作者