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)
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)
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)
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)
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)
# 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
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'dbname';
Cara No.2
convert semua table dalam satu database
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
mysql -uroot -p -f yourdb < yourdb.sql
convert semua table disemua database
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
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.
Trims infonya mas Akbar Ibnu….nanti akan dicoba..kalau bisa pasti bermanfaat. Tuhan memberkatimu