Cara Mengubah Direktori Data MySQL/MariaDB Default di Linux


Setelah menginstal komponen tumpukan LAMP di server CentOS/RHEL 7, ada beberapa hal yang mungkin ingin Anda lakukan.

Beberapa di antaranya berkaitan dengan peningkatan keamanan Apache dan MySQL/MariaDB, sementara yang lain mungkin dapat diterapkan atau tidak sesuai dengan pengaturan atau kebutuhan kita.

Misalnya, berdasarkan perkiraan penggunaan server database, kita mungkin ingin mengubah direktori data default (/var/lib/mysql) ke lokasi lain. Hal ini terjadi ketika direktori tersebut diperkirakan akan berkembang karena tingginya penggunaan.

Jika tidak, sistem file tempat /var disimpan mungkin akan runtuh pada satu titik dan menyebabkan seluruh sistem gagal. Skenario lain di mana mengubah direktori default adalah ketika kita memiliki jaringan berbagi khusus yang ingin kita gunakan untuk menyimpan data aktual.

Untuk itu pada artikel kali ini kami akan menjelaskan cara mengubah direktori data default MySQL/MariaDB ke jalur berbeda di server CentOS/RHEL 7 dan distro Ubuntu/Debian.

Meskipun kami akan menggunakan MariaDB, konsep yang dijelaskan dan langkah-langkah yang diambil dalam artikel ini berlaku untuk MySQL dan MariaDB kecuali dinyatakan lain.

Mengubah Direktori Data MySQL/MariaDB default

Catatan: Kita akan berasumsi bahwa direktori data baru kita adalah /mnt/mysql-data. Penting untuk dicatat bahwa direktori ini harus dimiliki oleh mysql:mysql.

mkdir /mnt/mysql-data
chown -R mysql:mysql /mnt/mysql-data

Demi kenyamanan Anda, kami telah membagi prosesnya menjadi 5 langkah yang mudah diikuti:

Langkah 1: Identifikasi Direktori Data MySQL Saat Ini

Untuk memulai, ada baiknya untuk mengidentifikasi direktori data saat ini menggunakan perintah berikut. Jangan hanya berasumsi bahwa ini masih /var/lib/mysql karena mungkin saja sudah diubah di masa lalu.

mysql -u root -p -e "SELECT @@datadir;"

Setelah Anda memasukkan kata sandi MySQL, hasilnya akan sama dengan.

Langkah 2: Salin Direktori Data MySQL ke Lokasi Baru

Untuk menghindari kerusakan data, hentikan layanan jika sedang berjalan sebelum melanjutkan. Gunakan perintah systemd yang terkenal untuk melakukannya:

------------- On SystemD ------------- 
systemctl stop mariadb
systemctl is-active mariadb

------------- On SysVInit ------------- 
service mysqld stop
service mysqld status

OR

service mysql stop
service mysql status

Jika layanan dihentikan, output dari perintah terakhir adalah sebagai berikut:

Kemudian salin secara rekursif isi /var/lib/mysql ke /mnt/mysql-data dengan mempertahankan izin dan stempel waktu asli:

cp -R -p /var/lib/mysql/* /mnt/mysql-data

Langkah 3: Konfigurasikan Direktori Data MySQL Baru

Edit file konfigurasi (my.cnf) untuk menunjukkan direktori data baru (/mnt/mysql-data dalam kasus ini).

vi /etc/my.cnf
OR
vi /etc/mysql/my.cnf

Temukan bagian [mysqld] dan [client] dan lakukan perubahan berikut:

Under [mysqld]:
datadir=/mnt/mysql-data
socket=/mnt/mysql-data/mysql.sock

Under [client]:
port=3306
socket=/mnt/mysql-data/mysql.sock

Simpan perubahan lalu lanjutkan ke langkah berikutnya.

Langkah 4: Atur Konteks Keamanan SELinux ke Direktori Data

Langkah ini hanya berlaku untuk RHEL/CentOS dan turunannya.

Tambahkan konteks keamanan SELinux ke /mnt/mysql-data sebelum memulai ulang MariaDB.

semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?"
restorecon -R /mnt/mysql-data

Selanjutnya restart layanan MySQL.

------------- On SystemD ------------- 
systemctl stop mariadb
systemctl is-active mariadb

------------- On SysVInit ------------- 
service mysqld stop
service mysqld status

OR

service mysql stop
service mysql status

Sekarang, gunakan perintah yang sama seperti pada Langkah 1 untuk memverifikasi lokasi direktori data baru:

mysql -u root -p -e "SELECT @@datadir;"

Langkah 5: Buat Database MySQL untuk Mengonfirmasi Direktori Data

Login ke MariaDB, buat database baru lalu centang /mnt/mysql-data:

mysql -u root -p -e "CREATE DATABASE tecmint;"

Selamat! Anda telah berhasil mengubah direktori data untuk MySQL atau MariaDB.

Ringkasan

Pada postingan kali ini kita telah membahas cara mengubah direktori data di server MySQL atau MariaDB yang berjalan di distribusi CentOS/RHEL 7 dan Ubuntu/Debian.

Apakah Anda memiliki pertanyaan atau komentar tentang artikel ini? Jangan ragu untuk memberi tahu kami menggunakan formulir di bawah ini – kami selalu senang mendengar pendapat Anda!