Kako promijeniti zadani MySQL/MariaDB direktorij podataka u Linuxu


Nakon instaliranja komponenti LAMP steka na CentOS/RHEL 7 server, postoji nekoliko stvari koje biste mogli da uradite.

Neki od njih se odnose na povećanje sigurnosti Apache-a i MySQL/MariaDB-a, dok drugi mogu biti primjenjivi ili ne u skladu s našim postavkama ili potrebama.

Na primjer, na osnovu očekivane upotrebe servera 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 direktorij rasti zbog velike upotrebe.

U suprotnom, sistem datoteka u kojem je pohranjen /var može se srušiti u jednom trenutku uzrokujući neuspjeh cijelog sistema. Drugi scenarij u kojem mijenjamo zadani direktorij je kada imamo namjenski mrežni dio koji želimo koristiti za pohranjivanje naših stvarnih podataka.

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

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

Promjena zadanog MySQL/MariaDB direktorija podataka

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 proces u 5 jednostavnih koraka:

Korak 1: Identificirajte trenutni MySQL direktorij podataka

Za početak, vrijedno je i dobro identificirati trenutni direktorij podataka koristeći sljedeću naredbu. Nemojte samo pretpostaviti da je još uvijek /var/lib/mysql jer 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 direktorij podataka na novu lokaciju

Da biste izbjegli oštećenje podataka, zaustavite uslugu ako je trenutno pokrenuta prije nego što nastavite. Za to koristite 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 posljednje naredbe trebao bi biti sljedeći:

Zatim rekurzivno kopirajte sadržaj /var/lib/mysql u /mnt/mysql-data čuvajući originalne dozvole 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 naznač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

Sačuvajte promjene i nastavite sa sljedećim korakom.

Korak 4: Postavite SELinux sigurnosni kontekst na direktorij podataka

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

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

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

Zatim ponovo pokrenite MySQL servis.

------------- 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 koristite istu naredbu kao u 1. koraku da provjerite lokaciju novog direktorija podataka:

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

Korak 5: Kreirajte MySQL bazu podataka da biste potvrdili direktorij podataka

Prijavite se na MariaDB, kreirajte 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 postu smo raspravljali o tome kako promijeniti direktorij podataka na MySQL ili MariaDB poslužitelju koji radi na CentOS/RHEL 7 i Ubuntu/Debian distribucijama.

Imate li pitanja ili komentara o ovom članku? Slobodno nas obavijestite koristeći formu ispod – uvijek nam je drago čuti od vas!