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!