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!