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!