Giunsa Pagbag-o ang usa ka Default nga Direktoryo sa Data sa MySQL/MariaDB sa Linux


Human ma-install ang mga sangkap sa usa ka LAMP stack sa usa ka CentOS/RHEL 7 server, adunay pipila ka mga butang nga gusto nimong buhaton.

Ang uban niini adunay kalabotan sa pagdugang sa seguridad sa Apache ug MySQL/MariaDB, samtang ang uban mahimo’g magamit o dili sumala sa among pag-setup o mga panginahanglanon.

Pananglitan, base sa gipaabot nga paggamit sa database server, mahimo natong usbon ang default data directory (/var/lib/mysql) ngadto sa laing lokasyon. Kini ang kaso kung ang ingon nga direktoryo gilauman nga motubo tungod sa taas nga paggamit.

Kung dili, ang filesystem diin gitipigan ang /var mahimong mahugno sa usa ka punto hinungdan nga mapakyas ang tibuuk nga sistema. Laing senaryo diin ang pagbag-o sa default nga direktoryo mao ang kung kami adunay usa ka gipahinungod nga bahin sa network nga gusto namon gamiton sa pagtipig sa among aktwal nga datos.

Tungod niini nga hinungdan, sa kini nga artikulo, among ipasabut kung giunsa pagbag-o ang default nga direktoryo sa datos sa MySQL/MariaDB sa lahi nga agianan sa usa ka server sa CentOS/RHEL 7 ug mga pag-apod-apod sa Ubuntu/Debian.

Bisan tuod among gamiton ang MariaDB, ang mga konsepto nga gipatin-aw ug ang mga lakang nga gihimo niining artikuloha magamit sa MySQL ug sa MariaDB gawas lang kon dili ipahibalo.

Pag-usab sa default MySQL/MariaDB Data Directory

Pahinumdom: Atong isipon nga ang atong bag-ong data directory kay /mnt/mysql-data. Importante nga hinumdoman nga kini nga direktoryo kinahanglan nga gipanag-iya sa mysql:mysql.

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

Para sa imong kasayon, gibahin namo ang proseso ngadto sa 5 ka sayon-sundon nga mga lakang:

Sa pagsugod, takus ug maayo ang pag-ila sa kasamtangan nga direktoryo sa datos gamit ang mosunod nga sugo. Ayaw lang isipa nga kini mao gihapon ang /var/lib/mysql tungod kay kini mausab sa nangagi.

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

Human nimo isulod ang MySQL password, ang output kinahanglan nga susama sa.

Aron malikayan ang korapsyon sa datos, ihunong ang serbisyo kung kini nagdagan sa dili pa magpadayon. Gamita ang systemd nga ilado nga mga sugo aron mahimo kini:

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

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

OR

# service mysql stop
# service mysql status

Kung ang serbisyo gipaubos, ang output sa katapusang sugo kinahanglan nga ingon sa mosunod:

Unya kopyaha balik-balik ang mga sulod sa /var/lib/mysql ngadto sa /mnt/mysql-data pagpreserbar sa orihinal nga mga permiso ug timestamp:

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

I-edit ang configuration file (my.cnf) aron ipakita ang bag-ong data directory (/mnt/mysql-data niini nga kaso).

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

Pangitaa ang [mysqld] ug [client] nga mga seksyon ug himoa ang mosunod nga mga kausaban:

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

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

I-save ang mga pagbag-o ug ipadayon ang sunod nga lakang.

Kini nga lakang magamit lamang sa RHEL/CentOS ug sa mga gigikanan niini.

Idugang ang konteksto sa seguridad sa SELinux sa /mnt/mysql-data sa dili pa i-restart ang MariaDB.

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

Sunod i-restart ang serbisyo sa 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

Karon, gamita ang parehas nga mando sama sa Lakang 1 aron mapamatud-an ang lokasyon sa bag-ong direktoryo sa datos:

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

Pag-login sa MariaDB, paghimo og bag-ong database ug dayon susiha ang /mnt/mysql-data:

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

Mga pahalipay! Malampuson nimong nausab ang direktoryo sa datos alang sa MySQL o MariaDB.

Sa kini nga post, among gihisgutan kung giunsa ang pagbag-o sa direktoryo sa datos sa usa ka MySQL o MariaDB server nga nagdagan sa CentOS/RHEL 7 ug mga distribusyon sa Ubuntu/Debian.

Aduna ka bay pangutana o komento bahin niining artikuloha? Mobati nga gawasnon nga ipahibalo kanamo gamit ang porma sa ubos - kanunay kaming nalipay nga makadungog gikan kanimo!