Linux-da esasy MySQL/MariaDB Maglumat katalogyny nädip üýtgetmeli


CentOS/RHEL 7 serwerine LAMP stakasynyň böleklerini guranyňyzdan soň, etmek isleýän birnäçe zadyňyz bar.

Olaryň käbiri Apache we MySQL/MariaDB-iň howpsuzlygyny ýokarlandyrmak bilen baglanyşykly, beýlekileri bolsa gurnalan ýa-da zerurlyklarymyza görä ulanylyp bilner.

Mysal üçin, maglumat bazasynyň serweriniň garaşylýan ulanylyşyna esaslanyp, deslapky maglumat katalogyny (/var/lib/mysql ) başga ýere üýtgetmek isläp bileris. Şeýle katalogyň köp ulanylmagy sebäpli ösmegine garaşylýar.

Otherwiseogsam, /var saklanýan faýl ulgamy bir wagtyň özünde tutuş ulgamyň işlemezligine sebäp bolup biler. Adaty katalogy üýtgetmegiň başga bir ssenariýasy, hakyky maglumatlarymyzy saklamak üçin ulanmak isleýän aýratyn ulgam paýymyz bar.

Şol sebäpli, bu makalada, MySQL/MariaDB maglumat katalogyny CentOS/RHEL 7 serwerinde we Ubuntu/Debian paýlamalarynda başga bir ýoldan nädip üýtgetmelidigini düşündireris.

MariaDB ulanarys-da, düşündirilen düşünjeler we bu makalada ädilen ädimler, başgaça bellenilmedik bolsa, MySQL-a we MariaDB-e degişlidir.

Adaty MySQL/MariaDB Maglumat katalogyny üýtgetmek

Bellik: Täze maglumatlar katalogymyzyň /mnt/mysql-data bolandygyny çaklaýarys. Bu bukjanyň mysql: mysql eýeçiliginde bolmalydygyny bellemelidiris.

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

Siziň amatlylygyňyz üçin, prosesi aňsat 5 ädimde böldük:

Başlamak üçin, aşakdaky buýrugy ulanyp, häzirki maglumat katalogyny kesgitlemek mynasyp we gowy. Diňe /var/lib/mysql diýip pikir etmäň, sebäbi ozal üýtgedilip bilnerdi.

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

MySQL parolyny girizeniňizden soň, çykyş meňzeş bolmaly.

Maglumat korrupsiýasynyň öňüni almak üçin, häzirki wagtda işlemezden öň işleýän bolsa, hyzmaty bes ediň. Munuň üçin systemd belli buýruklary ulanyň:

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

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

OR

# service mysql stop
# service mysql status

Hyzmat peseldilen bolsa, soňky buýrugyň çykyşy aşakdaky ýaly bolmaly:

Soňra /var/lib/mysql mazmunyny /mnt/mysql-data -a asyl rugsatlary we wagt belliklerini gorap saklaň:

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

Täze maglumat katalogyny görkezmek üçin konfigurasiýa faýlyny ( my.cnf ) redaktirläň (/mnt/mysql-data ).

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

[mysqld] we [client] bölümlerini tapyň we aşakdaky üýtgeşmeleri giriziň:

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

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

Üýtgeşmeleri ýazdyryň we indiki ädimiňize geçiň.

Bu ädim diňe RHEL/CentOS we olardan emele gelenlere degişlidir.

MariaDB-ni täzeden açmazdan ozal SELinux howpsuzlyk kontekstini /mnt/mysql-data goşuň.

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

Indiki MySQL hyzmatyny täzeden açyň.

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

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

OR

# service mysql stop
# service mysql status

Indi, täze maglumat katalogynyň ýerleşýän ýerini barlamak üçin 1-nji ädimdäki ýaly buýrugy ulanyň:

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

MariaDB-e giriň, täze maglumat bazasyny dörediň we soňra /mnt/mysql-data barlaň:

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

Gutlaýarys! MySQL ýa-da MariaDB üçin maglumat katalogyny üstünlikli üýtgetdiňiz.

Bu ýazgymyzda, CentOS/RHEL 7 we Ubuntu/Debian paýlamalarynda işleýän MySQL ýa-da MariaDB serwerindäki maglumat katalogyny nädip üýtgetmelidigini ara alyp maslahatlaşdyk.

Bu makala hakda soraglaryňyz ýa-da teswirleriňiz barmy? Aşakdaky formany ulanyp bize habar beriň - elmydama sizden eşidip begenýäris!