Jumat, Oktober 29, 2010

Memindahkan direktori data MySQL pada Ubuntu

Secara default, data MySQL pada Ubuntu terletak pada direktori /var/lib/mysql. Direktori ini berisi semua database mysql termasuk tabel-tabel yang ada di dalamnya. Jika sisa ruang pada partisi /var penuh, tentunya akan mengganggu operasional MySQL ini. Langkah-langkah berikut ini akan menjelaskan bagaimana caranya memindahkan data tersebut ke direktori lain. Semua langkah dibawah akan dijalankan melalui terminal dan menggunakan priveledge root.
  1. Mematikan service Mysql
  2. user@ubuntu# sudo /etc/init.d/mysql stop
    atau
    user@ubuntu# service mysql stop
  3. Buat direktori tujuan. Dalam contoh ini akan menggunakan /ext/mysql
  4. user@ubuntu# sudo  mkdir /ext/mysql

  5. Salin semua isi file pada /var/lib/mysql ke /ext/mysql
  6. user@ubuntu# sudo cp -R /var/lib/mysql /* /ext/mysql
  7. Set ownership dari /ext/mysql 
  8. user@ubuntu# sudo  chown -R mysql:mysql /ext/mysql
  9. Ubah konfigurasi Mysql pada /etc/mysql/my.cnf 
  10. user@ubuntu# sudo  vi /etc/mysq/my.cnf
    Cari variable datadir. Variabel ini sebelumnya berisi /var/lib/mysql. Ganti nilai variabel datadir dengan /ext/mysql

    datadir = /ext/mysql

  11. Pada Ubuntu, ada service yang bernama AppArmor. Service ini berfungsi sebagai aplikasi keamanan untuk membatasi akses aplikasi pada area tertentu. Pada kasus ini aplikasi MySql dibatasi aksesnya ke direktori-direktori yang sudah ditentukan. Konfigurasi AppArmor untuk MySQL bisa dilihat di /etc/apparmor.d/usr.sbin.mysqld

  12. Buka file /etc/apparmor.d/usr.sbin.mysqld  
    user@ubuntu# sudo  vi /etc/apparmor.d/usr.sbin.mysqld
    Ubah semua nilai /var/lib/mysql menjadi /ext/mysql.
    /ext/mysql/ r,  
    /ext/mysql/** rwk,
    Konfigurasi diatas memberikan akses aplikasi MySql untuk membaca direktori /ext/mysql dan memberikan akses baca, tulis, dan lock ke semua file yang berada di direktori tersebut.

  13. Restart service AppArmor
  14. user@ubuntu# sudo /etc/init.d/apparmor restart
    atau
    user@ubuntu# sudo service apparmor restart

  15. Jalankan service MySql

  16. user@ubuntu# sudo  /etc/init.d/mysql start
    atau
    user@ubuntu# service mysql start
Nah, sekarang Mysql sudah dapat digunakan seperti biasa. Jika tidak ada masalah, direktori lama /var/lib/mysql bisa dihapus.

Note: Versi Ubuntu yang digunakan adalah 10.10 dengan versi MySQL 5.1.49-1ubuntu8

2 komentar:

  1. bagaimana apabila saya ingin memindahkan direktori mysql ke partisi yg berbeda, apakah sama saja caranya?

    BalasHapus
  2. Sama saja caranya Mas.. Bisa kok, sudah saya coba

    BalasHapus