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!