Senin, 12 Juli 2010

Mengubah Default DataDir MySQL di Ubuntu Hardy

Tujuan mengubah datadir adalah agar setiap kali upgrade atau install ulang linux, tidak perlu repot-repot backup data mysql. Ubuntu hardy secara default sudah menyertakan AppArmor. Cara mengubah datadir itu sederhana, coba ikuti langkah-langkah berikut ini:
  1. Stop mysql server daemon dengan: sudo /etc/init.d/mysql stop
  2. Buat directory sebagai tujuan datadir yang baru, misal: /home/backup/mysql
  3. Change owner directory tersebut ke mysql:mysql dengan cara:                                                   sudo chown mysql:mysql /home/backup/mysql
  4. Copy semua file dan directory dari datadir yang lama (default di /var/lib/mysql/) ke datadir yang baru. Tapi ingat, file ib_arch_log_xxxxxxxxxxx dan ib_logfilexx tidak ikut di-copy.
  5. Setelah itu check file hasil copy adalah milik user mysql. Paling gampang sih chown saja semuanya: sudo chown -R mysql:mysql /home/backup/mysql
  6. Sekarang, ganti informasi datadir di /etc/mysql/my.cnf ke /home/backup/mysql
  7. Kalau sudah yakin benar, start lagi mysql server daemon: sudo /etc/init.d/mysql start
  8. Untuk testing apa benar sekarang sudah pakai datadir yang baru, bisa dengan membuat database baru dan melihat apa database itu ter-create di datadir baru.
  9. Kalau sudah, biarkan dulu selama beberapa hari sampai merasa yakin 100%.
  10. Setelah itu, data di datadir lama bisa dihapus total.
Kalau di system anda ada AppArmor terinstall, maka pada poin 7 akan menghasilkan error seperti berikut:
Initializing MySQL database: Installing all prepared tables
060125 10:41:44 [Warning] Can't create test file /home/backup/mysql/localhost.lower-test
/usr/libexec/mysqld: Can't change dir to '/home/backup/mysql/' (Errcode: 13)
060125 10:41:44 [ERROR] Aborting


Kalau langkah2 diatas sudah benar dan directory pada datadir dan semua isinya sudah menjadi milik user mysql dan memang benar AppArmor terinstall, maka langkah berikutnya adalah mengubah entry profile AppArmor untuk mysqld di

/etc/apparmor.d/usr.sbin.mysqld.

Tambahkan entry berikut pada file tersebut:

/home/global/mysql/ r,
/home/global/mysql/** rwk,

2 comments:

Melly mengatakan...

saya menggunakan xampp di ubuntu.. gimana ya caranya menggubah datadir mysql agar berada di home....

Irwan Prabowo mengatakan...

sama saja, ikutin saja manual diatas :)

Posting Komentar