Pindahkan database mysql 8 ke drive lain

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.service

Buat 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

[mysqld]
datadir=/home/eloy/applications/mysql-datadir/

Sekarang Anda dapat memulai layanan MySQL Anda melalui perintah berikut

systemctl start mysqld.service

Tetapi 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] Aborting

Menyelesaikan 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 /home

Seperti 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.conf 

salin 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

systemctl stop mysqld.service
0

Terapkan perubahan dengan menjalankan perintah berikut

systemctl stop mysqld.service
_1

Sekarang Anda dapat menjalankan layanan MySQL

systemctl start mysqld.service

Mengaktifkan 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
_3

chown --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

Bagaimana saya bisa memindahkan database MySQL ke drive lain?

Pindahkan file data MySQL ke drive lain .
Hentikan layanan MySQL. .
Ubah jalur lokasi baru file data Anda. .
Pindahkan file data asli (awalnya terletak secara default di C. \ProgramData\MySQL\MySQL Server 5. 5\data) ke tujuan baru (dalam contoh "E. \Data MySQL").
Mulai layanan Franson NMEA

Di mana data MySQL 8 disimpan?

Lokasi direktori data default adalah C. \Program Files\MySQL\MySQL Server 8. 0\data , atau C. \ProgramData\Mysql pada Windows 7 dan Windows Server 2008. C. Direktori \ProgramData disembunyikan secara default. Anda perlu mengubah opsi folder untuk melihat direktori dan isinya.

Bagaimana Anda memindahkan direktori data MySQL ke lokasi baru di Linux?

Langkah 1 - Pilih lokasi baru. Template CentOS kami tidak memiliki partisi /home tetapi menyimpannya di partisi /. .
Langkah 2 - Matikan MySQL. systemctl hentikan mysqld
Langkah 3 - Pindahkan data. .
Langkah 4 - Konfigurasikan MySQL. .
Langkah 5 - Mulai MySQL. .
Langkah 6 - Hapus jalur basis data lama