Saya berhasil mengubah direktori data MySQL atau MariaDB, dan menyelesaikan semua masalah terkait di Fedora 30. Saya pikir langkah-langkah berikut akan berfungsi pada distribusi lain
Catatan. Pengguna distribusi systemctl stop mysqld.service 5 seperti systemctl stop mysqld.service 6 harus mencari cara menonaktifkan dan mengedit systemctl stop mysqld.service 7 lalu ikuti langkah-langkah berikut
Menonaktifkan SELinux
Pertama-tama, izinkan saya menyebutkan bahwa Distribusi Linux berbasis RedHat (RHELs) seperti Fedora, CentOS, dll. gunakan SELinux yang memberlakukan kebijakan kontrol akses wajib. Jadi lebih baik untuk systemctl stop mysqld.service 8 selama langkah-langkah berikut dan kemudian mengaktifkannya dengan beberapa tweak
Buka file konfigurasi SELinux
nano /etc/selinux/config _Temukan baris yang berisi systemctl stop mysqld.service _9 dan ubah nilainya menjadi mkdir /home/eloy/applications/mysql-datadir/ 0, simpan file dan reboot sistem Anda
Mengubah datadir dari MySQL
Hentikan layanan MySQL
systemctl stop mysqld.serviceBuat direktori baru untuk direktori data MySQl. Karena beberapa alasan yang berada di luar cakupan solusi ini, sangat disarankan untuk tidak membuat direktori data di bawah direktori mkdir /home/eloy/applications/mysql-datadir/ 1, tapi mungkin beberapa dari Anda seperti saya lebih suka (biayanya lebih mahal)
mkdir /home/eloy/applications/mysql-datadir/ _Tetapkan kepemilikan dan izin direktori baru ke direktori data default MySQL (mkdir /home/eloy/applications/mysql-datadir/ 2)
chown --reference=/var/lib/mysql /home/eloy/applications/mysql-datadir/ chmod --reference=/var/lib/mysql /home/eloy/applications/mysql-datadir/Salin semua file dari direktori default ke yang baru
cp -rp /var/lib/mysql/* /home/eloy/applications/mysql-datadir/Edit file mkdir /home/eloy/applications/mysql-datadir/ _3, tambahkan tambahkan baris berikut di bawah bagian mkdir /home/eloy/applications/mysql-datadir/ 4
Sekarang Anda dapat memulai layanan MySQL Anda melalui perintah berikut
systemctl start mysqld.serviceTetapi jika direktori data dibuat di bawah mkdir /home/eloy/applications/mysql-datadir/ 1, MySQL tidak akan dimulai dan Anda akan melihat kesalahan dan peringatan berikut setelah mkdir /home/eloy/applications/mysql-datadir/ 6
Oct 05 10:22:03 eloy-fedora-laptop mysqld[8362]: 2021-10-05 10:22:03 0 [Warning] Could not increase number of max_open_files to more than 16384 (request: 32190) Oct 05 10:22:03 eloy-fedora-laptop mysqld[8362]: 2021-10-05 10:22:03 0 [Warning] Can't create test file /home/eloy/applications/mysql-datadir/eloy-fedora-laptop.lower-> Oct 05 10:22:03 eloy-fedora-laptop mysqld[8362]: [113B blob data] Oct 05 10:22:03 eloy-fedora-laptop mysqld[8362]: 2021-10-05 10:22:03 0 [ERROR] AbortingMenyelesaikan mkdir /home/eloy/applications/mysql-datadir/ _1 masalah
Pastikan bahwa semua direktori induk dari mkdir /home/eloy/applications/mysql-datadir/ 8 baru ke atas memiliki izin mkdir /home/eloy/applications/mysql-datadir/ 9 (mengeksekusi) untuk semua (pengguna, grup, dan lainnya). Saya lebih suka tidak menggunakan skrip rekursif
chmod +x /home/eloy/applications/mysql-datadir chmod +x /home/eloy/applications chmod +x /home/eloy/ chmod +x /homeSeperti yang disebutkan membuat datadir di bawah direktori mkdir /home/eloy/applications/mysql-datadir/ 1 itu rumit karena secara default MySQL tidak mengizinkannya. Buat file di bawah /etc/systemd/system/mariadb. melayani. d dan masukkan baris berikut
#open an editor to create a file nano /etc/systemd/system/mariadb.service.d/centreon.confsalin baris berikut ke file chown --reference=/var/lib/mysql /home/eloy/applications/mysql-datadir/ chmod --reference=/var/lib/mysql /home/eloy/applications/mysql-datadir/ 1 baru dan simpan
Terapkan perubahan dengan menjalankan perintah berikut
systemctl stop mysqld.service _1Sekarang Anda dapat menjalankan layanan MySQL
systemctl start mysqld.serviceMengaktifkan SELinux
Sekali lagi edit file chown --reference=/var/lib/mysql /home/eloy/applications/mysql-datadir/ chmod --reference=/var/lib/mysql /home/eloy/applications/mysql-datadir/ _2, dan ubah baris mkdir /home/eloy/applications/mysql-datadir/ 0 menjadi systemctl stop mysqld.service 9. Simpan file dan reboot sistem Anda
Untuk menanyakan status SELinux saat ini gunakan perintah berikut, ini harus mencetak chown --reference=/var/lib/mysql /home/eloy/applications/mysql-datadir/ chmod --reference=/var/lib/mysql /home/eloy/applications/mysql-datadir/ 5 sebagai output
systemctl stop mysqld.service _3chown --reference=/var/lib/mysql /home/eloy/applications/mysql-datadir/ chmod --reference=/var/lib/mysql /home/eloy/applications/mysql-datadir/ _6 menggunakan chown --reference=/var/lib/mysql /home/eloy/applications/mysql-datadir/ chmod --reference=/var/lib/mysql /home/eloy/applications/mysql-datadir/ 7 dan jika tidak disetel dengan benar chown --reference=/var/lib/mysql /home/eloy/applications/mysql-datadir/ chmod --reference=/var/lib/mysql /home/eloy/applications/mysql-datadir/ 8 proses akan dibatalkan, jadi Anda perlu memperbaruinya