Ini menunjukkan 5 yang merupakan elemen konteks default untuk lokasi file database. Konteks ini harus diterapkan secara manual ke lokasi database baru yang akan digunakan dalam contoh ini agar dapat berfungsi dengan baik Show Hentikan daemon mysqld _Buat direktori baru untuk lokasi baru database. Dalam contoh ini, /mysql/ digunakan
Salin file database dari lokasi lama ke lokasi baru
Ubah kepemilikan lokasi ini untuk mengizinkan akses oleh pengguna dan grup mysql. Ini menetapkan izin Unix tradisional yang masih akan diamati oleh SELinux _Jalankan perintah berikut untuk melihat konteks awal direktori baru
Konteks usr_t dari direktori yang baru dibuat ini saat ini tidak cocok untuk SELinux sebagai lokasi untuk file database MariaDB. Setelah konteks diubah, MariaDB akan dapat berfungsi dengan baik di area ini Buka file konfigurasi MariaDB utama _6 dengan editor teks dan ubah opsi 7 sehingga merujuk ke lokasi baru. Dalam contoh ini nilai yang harus dimasukkan adalah 8 _Simpan file ini dan keluar Mulai _9. Layanan harus gagal dimulai, dan pesan penolakan akan dicatat ke file 0
Namun, jika daemon audit sedang berjalan dan bersamanya layanan 1, penolakan akan dicatat ke file 2 sebagai gantinya
Alasan penolakan ini adalah mysql tidak diberi label dengan benar untuk file data MariaDB. SELinux menghentikan MariaDB dari memiliki akses ke konten berlabel 3. Lakukan langkah-langkah berikut untuk mengatasi masalah iniJalankan perintah berikut untuk menambahkan pemetaan konteks untuk mysql. Perhatikan bahwa _4 tidak diinstal secara default. Jika tidak ada di sistem Anda, instal paket 5 0Pemetaan ini ditulis ke file _6 _1Sekarang gunakan utilitas _7 untuk menerapkan pemetaan konteks ini ke sistem yang sedang berjalan _2Sekarang lokasi mysql telah diberi label dengan konteks yang benar untuk MariaDB, mysqld dimulai _3Konfirmasi konteks telah berubah untuk mysql _4Lokasi telah diubah dan diberi label, dan 9 telah berhasil dimulai. Pada titik ini, semua layanan yang berjalan harus diuji untuk mengonfirmasi operasi normal 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 berlaku atau tidak sesuai dengan pengaturan atau kebutuhan kita. Misalnya, berdasarkan penggunaan yang diharapkan dari server database, kami mungkin ingin mengubah direktori data default ( # mysql -u root -p -e "SELECT @@datadir;"0) ke lokasi yang berbeda. Ini adalah kasus ketika direktori seperti itu diharapkan tumbuh karena penggunaan yang tinggi Jika tidak, sistem file tempat # mysql -u root -p -e "SELECT @@datadir;"_1 disimpan dapat runtuh pada satu titik yang menyebabkan seluruh sistem gagal. Skenario lain di mana mengubah direktori default adalah ketika kami memiliki jaringan berbagi khusus yang ingin kami gunakan untuk menyimpan data aktual kami Untuk itu, pada artikel kali ini, kami akan menjelaskan cara mengubah direktori data MySQL / MariaDB default ke jalur yang berbeda di server CentOS/RHEL 7 dan distribusi Ubuntu/Debian Meskipun kita akan menggunakan MariaDB, konsep yang dijelaskan dan langkah-langkah yang diambil dalam artikel ini berlaku untuk MySQL dan MariaDB kecuali disebutkan lain Mengubah Direktori Data MySQL/MariaDB defaultCatatan. Kami akan berasumsi bahwa direktori data baru kami adalah # mysql -u root -p -e "SELECT @@datadir;"2. Penting untuk dicatat bahwa direktori ini harus dimiliki oleh # mysql -u root -p -e "SELECT @@datadir;"3 # 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 IniUntuk memulai, adalah layak dan baik untuk mengidentifikasi direktori data saat ini menggunakan perintah berikut. Jangan hanya menganggap itu masih # mysql -u root -p -e "SELECT @@datadir;"0 karena itu bisa diubah di masa lalu # mysql -u root -p -e "SELECT @@datadir;" Setelah Anda memasukkan kata sandi MySQL, hasilnya akan mirip dengan Identifikasi Direktori Data MySQLLangkah 2. Salin Direktori Data MySQL ke Lokasi BaruUntuk menghindari kerusakan data, hentikan layanan jika sedang berjalan sebelum melanjutkan. Gunakan perintah terkenal systemd 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 telah dimatikan, keluaran dari perintah terakhir adalah sebagai berikut Hentikan Layanan MySQLKemudian salin secara rekursif isi # mysql -u root -p -e "SELECT @@datadir;"0 ke # mysql -u root -p -e "SELECT @@datadir;"2 dengan mempertahankan izin asli dan stempel waktu # cp -R -p /var/lib/mysql/* /mnt/mysql-dataSalin Direktori Data MySQL ke Lokasi Baru Langkah 3. Konfigurasi Direktori Data MySQL BaruEdit file konfigurasi ( # mysql -u root -p -e "SELECT @@datadir;"_7) untuk menunjukkan direktori data baru ( # mysql -u root -p -e "SELECT @@datadir;"2 dalam hal ini) # vi /etc/my.cnf OR # vi /etc/mysql/my.cnf Temukan bagian # mysql -u root -p -e "SELECT @@datadir;"9 dan ------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status0 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 dengan langkah berikutnya Konfigurasi Direktori Data MySQL BaruLangkah 4. Setel Konteks Keamanan SELinux ke Direktori DataLangkah ini hanya berlaku untuk RHEL/CentOS dan turunannya Tambahkan konteks keamanan SELinux ke # mysql -u root -p -e "SELECT @@datadir;"2 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;"Verifikasi Direktori Data Baru MySQL Langkah 5. Buat Database MySQL untuk Mengonfirmasi Direktori DataLogin ke MariaDB, buat database baru, lalu centang # mysql -u root -p -e "SELECT @@datadir;"2 # mysql -u root -p -e "CREATE DATABASE tecmint;"Periksa Direktori Data Baru MySQL Selamat. Anda telah berhasil mengubah direktori data untuk MySQL atau MariaDB RingkasanDalam posting ini, kita telah membahas bagaimana mengubah direktori data di server MySQL atau MariaDB yang berjalan pada distribusi CentOS/RHEL 7 dan Ubuntu/Debian Apakah Anda memiliki pertanyaan atau komentar tentang artikel ini? Bagaimana cara memindahkan direktori data MySQL di Linux?Apa pun penyimpanan dasar yang Anda gunakan, panduan ini dapat membantu Anda memindahkan direktori data ke lokasi baru. . Langkah 1 — Memindahkan Direktori Data MySQL. . Langkah 2 — Menunjuk ke Lokasi Data Baru. . Langkah 3 — Mengonfigurasi Aturan Kontrol Akses AppArmor. . Langkah 4 — Mulai ulang MySQL Bagaimana cara memindahkan direktori MySQL ke direktori lain?Hentikan mysql dengan "sudo service mysql stop" ubah variabel "datadir" ke jalur baru di "/etc/mysql/mariadb. . Lakukan backup /var/lib/mysql. "cp -R -p /var/lib/mysql /path_to_my_backup" hapus dir ini. "sudo rm -R /var/lib/mysql" Pindahkan data ke direktori baru. "cp -R -p /path_to_my_backup /path_new_dir Bagaimana cara mengubah direktori data MariaDB ke lokasi baru di CentOS 7?Mengubah Direktori Data MySQL/MariaDB default . Langkah 1. Identifikasi Direktori Data MySQL Saat Ini. . Langkah 2. Salin Direktori Data MySQL ke Lokasi Baru. . Langkah 3. Konfigurasi Direktori Data MySQL Baru. . Langkah 4. Setel Konteks Keamanan SELinux ke Direktori Data. . Langkah 5. Buat Database MySQL untuk Mengonfirmasi Direktori Data Di mana MySQL disimpan di CentOS 7?Datadir default untuk MySQL adalah /var/lib/mysql dan selama Anda tidak mengubah konfigurasi, file database disimpan di direktori ini |