Kako promijeniti zadani direktorij podataka MySQL/MariaDB u Linuxu


Nakon instaliranja komponenti LAMP steka na CentOS/RHEL 7 poslužitelju, postoji nekoliko stvari koje biste mogli učiniti.

Neki od njih imaju veze s povećanjem sigurnosti Apachea i MySQL/MariaDB, dok drugi mogu biti primjenjivi ili ne prema našim postavkama ili potrebama.

Na primjer, na temelju očekivane upotrebe poslužitelja baze podataka, možda ćemo htjeti promijeniti zadani direktorij podataka (/var/lib/mysql) na drugu lokaciju. To je slučaj kada se očekuje da će takav imenik rasti zbog velike upotrebe.

U suprotnom, datotečni sustav u kojem je pohranjen /var može se srušiti u jednom trenutku uzrokujući kvar cijelog sustava. Drugi scenarij u kojem se mijenja zadani direktorij je kada imamo namjenski mrežni dio koji želimo koristiti za pohranjivanje naših stvarnih podataka.

Iz tog razloga, u ovom ćemo članku objasniti kako promijeniti zadani direktorij podataka MySQL/MariaDB na drugu stazu na CentOS/RHEL 7 poslužitelju i Ubuntu/Debian distribucijama.

Iako ćemo koristiti MariaDB, koncepti objašnjeni i koraci poduzeti u ovom članku odnose se i na MySQL i na MariaDB osim ako nije drugačije navedeno.

Promjena zadanog imenika podataka MySQL/MariaDB

Napomena: Pretpostavit ćemo da je naš novi direktorij podataka /mnt/mysql-data. Važno je napomenuti da ovaj direktorij treba biti u vlasništvu mysql:mysql.

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

Radi vaše udobnosti, podijelili smo postupak u 5 koraka koje je lako slijediti:

Korak 1: Identificirajte trenutni direktorij podataka MySQL

Za početak, vrijedno je i dobro identificirati trenutni direktorij podataka pomoću sljedeće naredbe. Nemojte samo pretpostaviti da je još uvijek /var/lib/mysql budući da je mogao biti promijenjen u prošlosti.

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

Nakon što unesete MySQL lozinku, izlaz bi trebao biti sličan.

Korak 2: Kopirajte MySQL Data Directory na novu lokaciju

Kako biste izbjegli oštećenje podataka, zaustavite uslugu ako je trenutno pokrenuta prije nastavka. Za to koristite dobro poznate naredbe systemd:

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

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

OR

service mysql stop
service mysql status

Ako je usluga prekinuta, izlaz zadnje naredbe trebao bi biti sljedeći:

Zatim kopirajte rekurzivno sadržaj /var/lib/mysql u /mnt/mysql-data čuvajući izvorna dopuštenja i vremenske oznake:

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

Korak 3: Konfigurirajte novi MySQL direktorij podataka

Uredite konfiguracijsku datoteku (my.cnf) da označite novi direktorij podataka (/mnt/mysql-data u ovom slučaju).

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

Pronađite odjeljke [mysqld] i [client] i napravite sljedeće promjene:

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

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

Spremite promjene i zatim nastavite sa sljedećim korakom.

Korak 4: Postavite SELinux sigurnosni kontekst na Data Directory

Ovaj je korak primjenjiv samo na RHEL/CentOS i njegove derivate.

Dodajte SELinux sigurnosni kontekst u /mnt/mysql-data prije ponovnog pokretanja MariaDB-a.

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

Zatim ponovno pokrenite MySQL uslugu.

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

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

OR

service mysql stop
service mysql status

Sada upotrijebite istu naredbu kao u 1. koraku za provjeru lokacije novog direktorija podataka:

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

Korak 5: Stvorite MySQL bazu podataka za potvrdu imenika podataka

Prijavite se na MariaDB, stvorite novu bazu podataka i zatim provjerite /mnt/mysql-data:

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

Čestitamo! Uspješno ste promijenili direktorij podataka za MySQL ili MariaDB.

Sažetak

U ovom smo postu raspravljali o tome kako promijeniti direktorij podataka u MySQL ili MariaDB poslužitelju koji radi na distribucijama CentOS/RHEL 7 i Ubuntu/Debian.

Imate li pitanja ili komentara o ovom članku? Slobodno nam se javite putem donjeg obrasca – uvijek nam je drago čuti vas!