Instal mysql di berbagai direktori linux

Menggunakan opsi --relocate untuk RPM kita dapat mengubah proses instalasi paket. Dalam contoh kami menggunakan --relocate /=/opt/mysql yang mengatakan bahwa direktori root harus mengarah ke /opt/mysql. Misalnya, ketika file akan diinstal di /etc, file tersebut sekarang akan dipindahkan ke /opt/mysql/etc. Opsi --root untuk aplikasi rpm tidak berfungsi. Ini akan digunakan untuk menginstal paket pada partisi berbeda yang akan dipasang oleh mesin lain

Setelah menginstal paket, kita harus membuat database awal MySQL. Kami mencegah hal ini dalam contoh dengan menggunakan opsi rpm --noscripts. Ini memungkinkan kita untuk menentukan mysql_install_db mana yang harus digunakan, dan ke direktori data mana

Namun, ada masalah dengan opsi mysql_install_db --basedir. itu tidak mengatur opsi --language dengan benar yang harus diberikan ke program mysqld untuk menjalankan Server MySQL. (lihat bug#41828). Solusi untuk masalah dengan opsi --language adalah menentukannya dalam file opsi. Dalam contoh kami membuat /etc/mysql/my51. cnf dengan opsi --language yang diatur di bagian [mysqld]. Kami kemudian menggunakan mysql_install_db dengan opsi --defaults-file

Langkah terakhir melibatkan memulai MySQL. Anda dapat menggunakan mysqld_safe dari direktori dasar baru /opt/mysql/usr, tetapi sebaiknya Anda menambahkan opsi yang tepat ke file opsi, misalnya. /etc/mysql/my51. cnf

 [mysqld_safe]
 ledir = /opt/mysql/usr/sbin

 [mysqld]
 basedir = /opt/mysql/usr
 language =/opt/mysql/usr/share/mysql/english  # needed for mysql_install_db
 datadir = /var/mysql51
 port = 3377
 socket = /tmp/mysql_51.sock

Kemudian Anda akan melakukan berikut

 shell> cd /opt/mysql/usr
 shell> ./bin/mysqld_safe --no-defaults --defaults-file=/etc/mysql/my51.cnf &
_

Yang juga penting adalah opsi --ledir di file opsi. Ini diperlukan untuk mysqld_safe sehingga tahu mysqld mana yang harus dijalankan

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 cara menginstal MySQL di direktori yang berbeda?

Mengekstrak Arsip Instal
Membuat File Opsi
Memilih Jenis Server MySQL
Inisialisasi Direktori Data
Memulai Server untuk Pertama Kalinya
Memulai MySQL dari Baris Perintah Windows
Menyesuaikan PATH untuk Alat MySQL
Memulai MySQL sebagai Layanan Windows

Apa lokasi pemasangan default untuk MySQL di Linux?

Secara default, datadir diatur ke /var/lib/mysql di /etc/mysql/mysql.

Apa path file MySQL di Linux?

MySQL menyimpan file DB di /var/lib/mysql secara default, tetapi Anda dapat menimpanya di file konfigurasi, biasanya disebut / .

Bagaimana cara mengatur jalur untuk MySQL?

Di desktop Windows, klik kanan ikon My Computer, lalu pilih Properties
Selanjutnya pilih tab Advanced dari menu System Properties yang muncul, dan klik tombol Environment Variables
Di bawah Variabel Sistem, pilih Jalur, lalu klik tombol Edit