Thursday, December 8, 2011

Enable MySQL InnoDB Storage Engine di XAMPP

Beberapa hari terakhir ini saya mulai dipusingkan dengan tugas-tugas yang banyak. Salah satunya tugas untuk membuat aplikasi database. Aplikasi yang saya coba buat dengan menggunakan bahasa pemrograman java dan database MySQL di XAMPP. Karena database yang ingin saya coba buat memerlukan adanya relasi antar tabel, tetapi karena default storage engine di XAMPP adalah MyIsam dimana foreign key nya hanya akan terconvert menjadi key biasa (index) maka saya perlu menggunakan InnoDB. Dari beberapa tutorial yang saya baca sih katanya XAMPP yang baru harusnya sudah secara otomatis InnoDBnya dapat digunakan. Tapi karena XAMPP saya masih versi lama, maka cara untuk mensiasatinya adalah dengan cara mengubah storage engine nya menjadi InnoDB. 
Jika kalian penasaran untuk melihat apakah InnoDBnya disable atau tidak bisa langsung dicek di localhost nya.
Storage Engine

InnoDB disable
Di gambar tersebut tampak bahwa InnoDB berwarna abu-abu artinya dia disable. Saya mencoba beberapa tutorial untuk membuat InnoDB menjadi enable tapi gak ada yang berhasil. Sempet frustasi juga sih. Karena pas saya coba salah satu tutorial dan dalam langkah awalnya diminta untuk men-stop server MySQL di panel XAMPP nya. Saya langsung stop servernya padahal sebelumnya saya sudah sempat mengubah isi file my.cnf nya. Walhasil malah muncul masalah server MySQL nya tidak bisa di-running kembali. Tapi akhirnya semuanya bisa kembali normal setelah saya coba ubah ulang semua configurasi yang sudah saya ubah. 
Nah...berikut ini akan saya tuliskan cara yang berhasil saya lakukan untuk meng-enable InnoDB di XAMPP.  
1. Buka notepade kemudian klik Open ubah tipe file nya menjadi All file. Kemudian buka my.cnf di directory .../xampp/mysql/bin. 
2. Temukan dan modifikasi bagian berikut.

# Comment the following if you are using InnoDB tables
skip-innodb
#innodb_data_home_dir = "D:/new sofware/xampp/mysql/"
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = "D:/new sofware/xampp/mysql/"
#innodb_log_arch_dir = "D:/new sofware/xampp/mysql/"
## You can set .._buffer_pool_size up to 50 - 80 %
## of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
##Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50


Cara modifikasinya adalah dengan cara memberi komentar (#) pada tulisan skip-innodb.  Kemudian hilangkan komentar (#) pada semua tulisan berawalan innodb di atas. Sehingga setelah dimodifikasi akan menjadi seperti ini.

# Comment the following if you are using InnoDB tables
#skip-innodb
innodb_data_home_dir = "D:/new sofware/xampp/mysql/"
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = "D:/new sofware/xampp/mysql/"
innodb_log_arch_dir = "D:/new sofware/xampp/mysql/"
## You can set .._buffer_pool_size up to 50 - 80 %
## of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
##Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50


3. Save file hasil modifikasi di atas.
4. Reset server MySQL di panel XAMPP dengan cara men-stop MySQL server di panel XAMPP kemudian start lagi.
5. Hasilnya 
InnoDB Enable


Selamat Mencoba! Semoga bermanfaat :)

1 comment: