Tuesday, January 10, 2017

Ubuntu: Cara memindahkan default mysql direktori ke partisi lain

Secara default ketika installasi mysql (lihat cara instal database mysql di ubuntu pada vps) database nya akan diarahkan ke direktori /var/lib/mysql

permasalahanya ketika kamu menggunakan vps seperti vultr misalnya, space untuk partisi root nya sangat sedikit, hanya 8 Giga itupun masih harus dikurangi untuk filesystem, swap, dll. Bagaimana kalau database nya kamu perlu lebih dari 8G? Caranya tidak terlalu sulit. masih dengan paket paling rendah $5 kamu sudah bisa dapat space database yang cukup lega, 50GB.

Pertama gunakan trik VPS $5, space 50GB di sini, kemudian ikuti langkah dibawah ini untuk memindahkan default database direktori mysql ke partisi lain.



Oke saya anggap partisi blockstorage kamu sudah siap ya, lihat cara di atas!

selanjutnya lihat dimana data direktori mysql kamu terinstall, caranya login ke mysql

# mysql -u root -p

$> select @@datadir;

Output
+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set (0.00 sec)

nah sudah ketahuan kan dimana database kamu nantinya akan tersimpan secara default.

sekarang matikan service mysql kamu

# sudo systemctl stop mysql

sekarang kita copy data di default mysql data dir ke partisi baru

# sudo rsync -av /var/lib/mysql /mnt/blockstorage

ingat, blockstorage tanpa / (slash) yang di belakangnya

sudah tercopy. kini kita backup dulu database defaultnya

# sudo mv /var/lib/mysql /var/lib/mysql.backup

Oke, sekarang kita ubah configurasi mysqlnya supaya mengarah ke data dir yang baru

# sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf


Ubah data dir nya ke direktori yang baru

.... 
datadir=/mnt/blockstorage/mysql 
.... 

Nah, sekarang coba restart mysql nya... error kan? hehe.. tunggu, masih satu langkah lagi, perlu configure apparmor juga

# sudo nano /etc/apparmor.d/tunables/alias

tambahkan script berikut ke baris terakir

alias /var/lib/mysql/ -> /mnt/blockstorage/mysql/,

restart apparmor nya

sudo systemctl restart apparmor

Kalau kamu start mysql sekarang masih error juga pastinya hehe... kali ini beneran deh tinggal satu langkah lagi, jalanin perintah ini

# sudo mkdir /var/lib/mysql/mysql -p

oke sekarang start service mysql kamu

sudo systemctl start mysql

mysql ubuntu


Berhasil kan? awas klo gak berhasil!

coba lihat datadir nya sekarang mengarah kemana, sudah ke partisi baru atau masih lama. caranya? lupa? lihat ke atas lagi! masuk ke mysql terus jalanin

mysql> select @@datadir;

harusnya sekarang seperti ini hasilnya

+--------------------------+
| @@datadir                |
+--------------------------+
| /mnt/blockstorage/mysql/ |
+--------------------------+
1 row in set (0.00 sec)

No comments:

Post a Comment