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!