Kuidas muuta Linuxi vaikimisi MySQL/MariaDB andmekataloogi


Pärast LAMP-i virna komponentide installimist CentOS/RHEL 7 serverisse võiksite teha paar asja.

Mõni neist on seotud Apache'i ja MySQL/MariaDB turvalisuse suurendamisega, teised aga võivad vastavalt meie seadistusele või vajadustele olla rakendatavad või mitte.

Näiteks võiksime andmebaasiserveri eeldatava kasutamise põhjal soovida muuta vaikeandmete kataloogi (/var/lib/mysql ) teise asukohta. Seda juhul, kui sellise kataloogi eeldatavasti suureneb suure kasutamise tõttu.

Vastasel juhul võib failisüsteem, kuhu /var on salvestatud, ühel hetkel kokku kukkuda, põhjustades kogu süsteemi tõrke. Teine stsenaarium, kus vaikekataloogi muutmine on siis, kui meil on spetsiaalne võrguosa, mida soovime kasutada oma tegelike andmete salvestamiseks.

Sel põhjusel selgitame selles artiklis, kuidas muuta vaikimisi MySQL/MariaDB andmekataloog CentOS/RHEL 7 serveris ja Ubuntu/Debiani jaotustes teisele teele.

Kuigi me kasutame MariaDB-d, kehtivad käesolevas artiklis selgitatud mõisted ja sammud nii MySQL-i kui ka MariaDB-le, kui pole märgitud teisiti.

MySQL/MariaDB vaikekataloogi muutmine

Märkus. Eeldame, et meie uus andmekataloog on /mnt/mysql-data . Oluline on märkida, et see kataloog peaks kuuluma mysql: mysql .

# mkdir /mnt/mysql-data
# chown -R mysql:mysql /mnt/mysql-data

Teie mugavuse huvides oleme protsessi jaotanud viieks hõlpsasti järgitavaks sammuks:

Alustuseks on väärt ja hästi tuvastada praegune andmekataloog järgmise käsu abil. Ärge arvake, et see on endiselt /var/lib/mysql , kuna seda oleks võinud ka varem muuta.

# mysql -u root -p -e "SELECT @@datadir;"

Pärast MySQL-i parooli sisestamist peaks väljund olema sarnane.

Andmete rikkumise vältimiseks peatage enne jätkamist teenus, kui see praegu töötab. Selleks kasutage systemd tuntud käske:

------------- On SystemD ------------- 
# systemctl stop mariadb
# systemctl is-active mariadb

------------- On SysVInit ------------- 
# service mysqld stop
# service mysqld status

OR

# service mysql stop
# service mysql status

Kui teenus on alla viidud, peaks viimase käsu väljund olema järgmine:

Seejärel kopeerige rekursiivselt faili /var/lib/mysql sisu /mnt/mysql-data , säilitades algsed õigused ja ajatemplid:

# cp -R -p /var/lib/mysql/* /mnt/mysql-data

Uue andmekataloogi tähistamiseks muutke konfiguratsioonifaili ( my.cnf ) (sel juhul /mnt/mysql-data ).

# vi /etc/my.cnf
OR
# vi /etc/mysql/my.cnf

Leidke jaotised [mysqld] ja [klient] ja tehke järgmised muudatused:

Under [mysqld]:
datadir=/mnt/mysql-data
socket=/mnt/mysql-data/mysql.sock

Under [client]:
port=3306
socket=/mnt/mysql-data/mysql.sock

Salvestage muudatused ja jätkake järgmise sammuga.

See etapp kehtib ainult RHEL/CentOS ja selle derivaatide kohta.

Enne MariaDB taaskäivitamist lisage SELinuksi turvakontekst kausta /mnt/mysql-data .

# semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?"
# restorecon -R /mnt/mysql-data

Järgmisena taaskäivitage teenus 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

Nüüd kasutage uue andmekataloogi asukoha kontrollimiseks sama käsku nagu 1. toimingus:

# mysql -u root -p -e "SELECT @@datadir;"

Logige sisse MariaDB-sse, looge uus andmebaas ja kontrollige seejärel /mnt/mysql-data :

# mysql -u root -p -e "CREATE DATABASE tecmint;"

Palju õnne! Olete edukalt muutnud MySQL või MariaDB andmekataloogi.

Selles postituses oleme arutanud, kuidas muuta MySQL või MariaDB serveri andmekataloogi, mis töötab CentOS/RHEL 7 ja Ubuntu/Debiani jaotustes.

Kas teil on selle artikli kohta küsimusi või kommentaare? Andke sellest julgelt teada alloleva vormi abil - meil on alati hea meel kuulda!