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.!