Kif tibdel Direttorju tad-Data Default MySQL/MariaDB fil-Linux


Wara li tinstalla l-komponenti ta 'munzell LAMP fuq server CentOS/RHEL 7, hemm ftit affarijiet li tista' tkun trid tagħmel.

Xi wħud minnhom għandhom x'jaqsmu maż-żieda tas-sigurtà tal-Apache u l-MySQL/MariaDB, filwaqt li oħrajn jistgħu jkunu applikabbli jew le skont is-setup jew il-ħtiġijiet tagħna.

Pereżempju, ibbażat fuq l-użu mistenni tas-server tad-database, nistgħu rridu nbiddlu d-direttorju tad-dejta default (/var/lib/mysql) għal post differenti. Dan huwa l-każ meta direttorju bħal dan huwa mistenni li jikber minħabba użu għoli.

Inkella, is-sistema tal-fajls fejn hija maħżuna /var tista' tikkollassa f'punt wieħed u tikkawża li s-sistema kollha tfalli. Xenarju ieħor fejn nibdlu d-direttorju default huwa meta jkollna sehem tan-netwerk iddedikat li rridu nużaw biex naħżnu d-dejta attwali tagħna.

Għal din ir-raġuni, f'dan l-artikolu, se nispjegaw kif tibdel id-direttorju tad-dejta default MySQL/MariaDB għal mogħdija differenti fuq server CentOS/RHEL 7 u distribuzzjonijiet Ubuntu/Debian.

Għalkemm se nużaw MariaDB, il-kunċetti spjegati u l-passi meħuda f'dan l-artikolu japplikaw kemm għal MySQL kif ukoll għal MariaDB sakemm ma jkunx innutat mod ieħor.

Nibdlu d-Direttorju tad-Data MySQL/MariaDB default

Nota: Se nassumu li d-direttorju tad-dejta l-ġdid tagħna huwa /mnt/mysql-data. Huwa importanti li wieħed jinnota li dan id-direttorju għandu jkun proprjetà ta' mysql:mysql.

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

Għall-konvenjenza tiegħek, qsamna l-proċess f'5 passi faċli biex isegwu:

Biex tibda, huwa denju u tajjeb li tidentifika d-direttorju tad-dejta attwali billi tuża l-kmand li ġej. Assumix biss li għadu /var/lib/mysql peress li seta' nbidel fil-passat.

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

Wara li ddaħħal il-password MySQL, l-output għandu jkun simili għal.

Biex tevita l-korruzzjoni tad-dejta, waqqaf is-servizz jekk bħalissa qed jaħdem qabel ma tipproċedi. Uża l-kmandi magħrufa tas-systemd biex tagħmel dan:

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

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

OR

# service mysql stop
# service mysql status

Jekk is-servizz ġie mnaqqas, l-output tal-aħħar kmand għandu jkun kif ġej:

Imbagħad ikkopja b'mod rikorsiv il-kontenut ta' /var/lib/mysql għal /mnt/mysql-data filwaqt li tippreserva l-permessi u t-timestamps oriġinali:

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

Editja l-fajl tal-konfigurazzjoni (my.cnf) biex tindika d-direttorju tad-dejta l-ġdid (/mnt/mysql-data f’dan il-każ).

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

Sib is-sezzjonijiet [mysqld] u [client] u agħmel il-bidliet li ġejjin:

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

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

Issejvja l-bidliet u mbagħad ipproċedi bil-pass li jmiss.

Dan il-pass huwa applikabbli biss għal RHEL/CentOS u d-derivattivi tiegħu.

Żid il-kuntest tas-sigurtà SELinux ma '/mnt/mysql-data qabel ma terġa' tibda MariaDB.

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

Li jmiss ibda mill-ġdid is-servizz 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

Issa, uża l-istess kmand bħal fil-Pass 1 biex tivverifika l-post tad-direttorju tad-dejta l-ġdid:

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

Idħol f'MariaDB, oħloq database ġdida u mbagħad iċċekkja /mnt/mysql-data:

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

Prosit! Bdilt b'suċċess id-direttorju tad-dejta għal MySQL jew MariaDB.

F'din il-kariga, iddiskutejna kif tibdel id-direttorju tad-dejta f'server MySQL jew MariaDB li jaħdem fuq distribuzzjonijiet CentOS/RHEL 7 u Ubuntu/Debian.

Għandek xi mistoqsijiet jew kummenti dwar dan l-artikolu? Ħossok liberu li tgħarrafna billi tuża l-formola hawn taħt - aħna dejjem ferħanin li nisimgħu mingħandek!