Kaip pakeisti numatytąjį „MySQL“/„MariaDB“ duomenų katalogą „Linux“.


Įdiegę LAMP dėklo komponentus CentOS/RHEL 7 serveryje, galbūt norėsite atlikti keletą dalykų.

Kai kurie iš jų yra susiję su „Apache“ ir „MySQL“/„MariaDB“ saugumo didinimu, o kiti gali būti taikomi arba ne, atsižvelgiant į mūsų sąranką ar poreikius.

Pavyzdžiui, atsižvelgdami į numatomą duomenų bazės serverio naudojimą, galime norėti pakeisti numatytąjį duomenų katalogą (/var/lib/mysql) į kitą vietą. Taip yra, kai tikimasi, kad toks katalogas padidės dėl didelio naudojimo.

Priešingu atveju failų sistema, kurioje saugomas /var, vienu metu gali žlugti ir suges visa sistema. Kitas scenarijus, kai keičiamas numatytasis katalogas, kai turime tam skirtą tinklo dalį, kurią norime naudoti faktiniams duomenims saugoti.

Dėl šios priežasties šiame straipsnyje paaiškinsime, kaip pakeisti numatytąjį MySQL/MariaDB duomenų katalogą į kitą kelią CentOS/RHEL 7 serveryje ir Ubuntu/Debian platinimuose.

Nors naudosime MariaDB, šiame straipsnyje paaiškintos sąvokos ir veiksmai taikomi ir MySQL, ir MariaDB, jei nenurodyta kitaip.

Numatytosios MySQL/MariaDB duomenų katalogo keitimas

Pastaba: manysime, kad naujasis duomenų katalogas yra /mnt/mysql-data. Svarbu pažymėti, kad šis katalogas turėtų priklausyti mysql:mysql.

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

Jūsų patogumui procesą suskirstėme į 5 lengvai atliekamus veiksmus:

1 veiksmas: nustatykite esamą MySQL duomenų katalogą

Norėdami pradėti, verta ir gerai nustatyti dabartinį duomenų katalogą naudojant šią komandą. Nemanykite, kad jis vis dar yra /var/lib/mysql, nes jis galėjo būti pakeistas praeityje.

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

Įvedus MySQL slaptažodį, išvestis turėtų būti panaši į.

2 veiksmas: nukopijuokite MySQL duomenų katalogą į naują vietą

Kad išvengtumėte duomenų sugadinimo, prieš tęsdami sustabdykite paslaugą, jei ji šiuo metu veikia. Norėdami tai padaryti, naudokite gerai žinomas systemd komandas:

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

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

OR

service mysql stop
service mysql status

Jei paslauga buvo išjungta, paskutinės komandos išvestis turėtų būti tokia:

Tada rekursyviai nukopijuokite /var/lib/mysql turinį į /mnt/mysql-data, išsaugodami originalius leidimus ir laiko žymas:

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

3 veiksmas: sukonfigūruokite naują MySQL duomenų katalogą

Redaguokite konfigūracijos failą (my.cnf), kad nurodytumėte naują duomenų katalogą (šiuo atveju /mnt/mysql-data).

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

Raskite skyrius [mysqld] ir [klientas] ir atlikite šiuos pakeitimus:

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

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

Išsaugokite pakeitimus ir pereikite prie kito žingsnio.

4 veiksmas: nustatykite SELinux saugos kontekstą į duomenų katalogą

Šis veiksmas taikomas tik RHEL/CentOS ir jos išvestinėms priemonėms.

Prieš paleisdami MariaDB iš naujo, pridėkite SELinux saugos kontekstą į /mnt/mysql-data.

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

Tada iš naujo paleiskite „MySQL“ paslaugą.

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

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

OR

service mysql stop
service mysql status

Dabar naudokite tą pačią komandą, kaip ir 1 veiksme, kad patikrintumėte naujo duomenų katalogo vietą:

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

5 veiksmas: sukurkite MySQL duomenų bazę, kad patvirtintumėte duomenų katalogą

Prisijunkite prie MariaDB, sukurkite naują duomenų bazę ir patikrinkite /mnt/mysql-data:

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

Sveikiname! Sėkmingai pakeitėte MySQL arba MariaDB duomenų katalogą.

Santrauka

Šiame įraše aptarėme, kaip pakeisti duomenų katalogą MySQL arba MariaDB serveryje, kuriame veikia CentOS/RHEL 7 ir Ubuntu/Debian platinimai.

Ar turite klausimų ar komentarų apie šį straipsnį? Nedvejodami praneškite mums naudodami toliau pateiktą formą – visada džiaugiamės galėdami apie jus sužinoti!