Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to change the storage engine type on MySQL?

Tags:

mysql

I would like to use InnoDB as the storage engine on all my tables and databases. Is there a command I can run to change the type of my current tables to use InnoDB instead of MyISAM?

Also, is there a way to set this as the default so I don't have to do this again?

like image 912
Andrew Avatar asked Nov 22 '09 21:11

Andrew


3 Answers

To change the storage engine of an existing table:

ALTER TABLE my_table ENGINE = InnoDB;

To set InnoDB as default:

Normally, this is MyISAM, but you can change it by using the --default-storage-engine or --default-table-type server startup option, or by setting the default-storage-engine or default-table-type option in the my.cnf configuration file.

like image 115
Pascal Thivent Avatar answered Sep 22 '22 11:09

Pascal Thivent


The following article will tell you how to set the default storage engine, how to explicitly use a specific engine during a CREATE TABLE command, and how to change the storage engine of existing tables:

http://dev.mysql.com/doc/refman/5.1/en/storage-engine-setting.html

like image 25
Matt Avatar answered Sep 23 '22 11:09

Matt


If you use are using the mysql workbench there is a script menu option to change the engine of all tables.

Select Plugins > Utilities > Change storage engine of all all tables.

like image 39
ClearCrescendo Avatar answered Sep 23 '22 11:09

ClearCrescendo