Cum să schimbați un director de date MySQL/MariaDB implicit în Linux


După instalarea componentelor unei stive LAMP pe un server CentOS/RHEL 7, există câteva lucruri pe care poate doriți să le faceți.

Unele dintre ele au de-a face cu creșterea securității Apache și MySQL/MariaDB, în timp ce altele pot fi aplicabile sau nu în funcție de configurația sau nevoile noastre.

De exemplu, pe baza utilizării așteptate a serverului bazei de date, este posibil să dorim să schimbăm directorul implicit date (/var/lib/mysql) într-o locație diferită. Acesta este cazul când se așteaptă ca un astfel de director să crească din cauza utilizării mari.

În caz contrar, sistemul de fișiere în care este stocat /var se poate prăbuși la un moment dat, provocând eșuarea întregului sistem. Un alt scenariu în care schimbarea directorului implicit este atunci când avem o partajare de rețea dedicată pe care dorim să o folosim pentru a stoca datele noastre reale.

Din acest motiv, în acest articol, vom explica cum să schimbați directorul de date implicit MySQL/MariaDB într-o cale diferită pe un server CentOS/RHEL 7 și distribuțiile Ubuntu/Debian.

Deși vom folosi MariaDB, conceptele explicate și pașii luați în acest articol se aplică atât pentru MySQL, cât și pentru MariaDB dacă nu este menționat altfel.

Schimbarea directorului de date MySQL/MariaDB implicit

Notă: vom presupune că noul nostru director de date este /mnt/mysql-data. Este important să rețineți că acest director ar trebui să fie deținut de mysql:mysql.

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

Pentru confortul dvs., am împărțit procesul în 5 pași ușor de urmat:

Pasul 1: Identificați directorul actual de date MySQL

Pentru început, este demn și bine să identificați directorul de date curent folosind următoarea comandă. Nu presupuneți că este încă /var/lib/mysql, deoarece ar fi putut fi schimbat în trecut.

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

După ce introduceți parola MySQL, rezultatul ar trebui să fie similar cu.

Pasul 2: Copiați directorul de date MySQL într-o locație nouă

Pentru a evita coruperea datelor, opriți serviciul dacă rulează în prezent înainte de a continua. Utilizați comenzile binecunoscute systemd pentru a face acest lucru:

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

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

OR

service mysql stop
service mysql status

Dacă serviciul a fost oprit, rezultatul ultimei comenzi ar trebui să fie după cum urmează:

Apoi copiați recursiv conținutul /var/lib/mysql în /mnt/mysql-data, păstrând permisiunile și marcajele de timp originale:

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

Pasul 3: Configurați un nou director de date MySQL

Editați fișierul de configurare (my.cnf) pentru a indica noul director de date (/mnt/mysql-data în acest caz).

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

Localizați secțiunile [mysqld] și [client] și efectuați următoarele modificări:

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

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

Salvați modificările și apoi continuați cu pasul următor.

Pasul 4: Setați Contextul de securitate SELinux la Data Directory

Acest pas este aplicabil numai RHEL/CentOS și derivatelor sale.

Adăugați contextul de securitate SELinux la /mnt/mysql-data înainte de a reporni MariaDB.

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

Apoi reporniți serviciul MySQL.

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

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

OR

service mysql stop
service mysql status

Acum, utilizați aceeași comandă ca în Pasul 1 pentru a verifica locația noului director de date:

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

Pasul 5: Creați o bază de date MySQL pentru a confirma directorul de date

Conectați-vă la MariaDB, creați o nouă bază de date și apoi verificați /mnt/mysql-data:

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

Felicitări! Ați schimbat cu succes directorul de date pentru MySQL sau MariaDB.

rezumat

În această postare, am discutat despre cum să schimbați directorul de date într-un server MySQL sau MariaDB care rulează pe distribuțiile CentOS/RHEL 7 și Ubuntu/Debian.

Aveți întrebări sau comentarii despre acest articol? Simțiți-vă liber să ne anunțați folosind formularul de mai jos - suntem întotdeauna bucuroși să auzim de la dvs.!