Halo sobat sekolahlinux, kali ini saya coba memberikan artikel singkat tentang bagaimana cara convert database myisam menjadi innodb pada mysql
Cara No.1
untuk melihat jenis table pada database apakah myisam atau sudah innodb bisa dengan cara dibawah (ganti yourdb dengan database yang akan dilihat)
1 |
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'yourdb'; |
selanjutnya kita akan dump schema databasenya saja (ganti yourdb dengan database yang akan didump)
1 |
mysqldump -uroot -p --no-data -R --triggers yourdb > yourdb_schema.sql |
selanjutnya kita akan dump data databasenya saja (ganti yourdb dengan database yang akan didump)
1 |
mysqldump --replace -uroot -p --no-create-info -R --triggers mydb > mydb_data.sql |
selanjutnya kita akan convert schema databasenya dari myisam ke innodb (ganti yourdb dengan hasil dump schema database yang akan diconvert)
1 |
sed -i.bak 's#MyISAM#innodb#g' yourdb_schema.sql |
jika sudah selanjutnya restore database yang sudah kita convert dengan cara diatas (ganti yourdb dengan database yang akan direstore)
1 2 3 4 5 6 |
# jika database blum ada silahkan buat databasenya dahulu mysql -uroot -p -e "create database yourdb" # restore schema schema mysql -uroot -p yourdb < yourdb_schema.sql #restore data mysql -uroot -p yourdb < yourdb_data.sql |
untuk melihat apakah table databasenya sudah berubah menjadi innodb atau belum bisa dengan perintah dibawah
1 |
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'dbname'; |
Cara No.2
convert semua table dalam satu database
1 2 3 |
mysql -uroot -p -e "SELECT concat('ALTER TABLE ',TABLE_NAME,' ENGINE=InnoDB;') FROM Information_schema.TABLES WHERE TABLE_SCHEMA = 'yourdb' AND ENGINE = 'MyISAM' AND TABLE_TYPE='BASE TABLE'" | tail -n+2 > yourdb.sql |
restore hasil convert diatas
1 |
mysql -uroot -p -f yourdb < yourdb.sql |
convert semua table disemua database
1 2 3 |
mysql -uroot -p -e "SELECT concat('ALTER TABLE `',TABLE_SCHEMA,'`.',TABLE_NAME,' ENGINE=InnoDB;') FROM Information_schema.TABLES WHERE TABLE_SCHEMA != 'mysql' AND ENGINE = 'MyISAM' AND TABLE_TYPE='BASE TABLE'" | tail -n+2 > alldb.sql |
restore hasil convert diatas
1 |
mysql -uroot -p -f < alldb.sql |
sumber:
- https://easyengine.io/tutorials/mysql/innodb-to-myisam/
- https://easyengine.io/tutorials/mysql/myisam-to-innodb/
sekian tutorial kali ini, semoga bermanfaat.
Iko
Trims infonya mas Akbar Ibnu….nanti akan dicoba..kalau bisa pasti bermanfaat. Tuhan memberkatimu