Bii o ṣe le Yi Ayipada data MySQL/MariaDB Aiyipada pada ni Lainos


Lẹhin fifi awọn paati ti akopọ LAMP sori olupin CentOS/RHEL 7, awọn nkan meji wa ti o le fẹ ṣe.

Diẹ ninu wọn ni lati ṣe pẹlu jijẹ aabo ti Apache ati MySQL/MariaDB, lakoko ti awọn miiran le wulo tabi kii ṣe gẹgẹ bi iṣeto wa tabi awọn aini.

Fun apeere, da lori lilo ti a reti ti olupin data, a le fẹ lati yi itọsọna data aiyipada (/var/lib/mysql ) lọ si ipo miiran. Eyi ni ọran nigbati iru itọsọna bẹ nireti lati dagba nitori ilo ga.

Bibẹẹkọ, eto faili nibiti /var ti wa ni fipamọ le ṣubu ni aaye kan ti o fa ki gbogbo eto naa kuna. Ohn miiran nibiti yiyipada itọsọna aiyipada ni nigbati a ni ipin nẹtiwọọki ifiṣootọ kan ti a fẹ lati lo lati tọju data gangan wa.

Fun idi eyi, ninu nkan yii, a yoo ṣalaye bi o ṣe le yipada aiyipada data data MySQL/MariaDB si ọna ti o yatọ lori olupin CentOS/RHEL 7 ati awọn pinpin Ubuntu/Debian.

Botilẹjẹpe a yoo lo MariaDB, awọn imọran ti o ṣalaye ati awọn igbesẹ ti a ṣe ninu nkan yii lo mejeeji si MySQL ati si MariaDB ayafi ti a ṣe akiyesi bibẹkọ.

Yiyipada Ilana data MySQL/MariaDB aiyipada

Akiyesi: A yoo ro pe ilana data tuntun wa ni /mnt/mysql-data . O ṣe pataki lati ṣe akiyesi pe itọsọna yii yẹ ki o jẹ ti mysql: mysql .

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

Fun irọrun rẹ, a ti pin ilana naa si awọn igbesẹ 5 rọrun-lati-tẹle:

Lati bẹrẹ, o yẹ ati daradara lati ṣe idanimọ itọsọna data lọwọlọwọ nipa lilo aṣẹ atẹle. Maṣe ro pe o tun jẹ /var/lib/mysql nitori o le ti yipada ni igba atijọ.

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

Lẹhin ti o tẹ ọrọ igbaniwọle MySQL sii, iṣẹjade yẹ ki o jẹ iru si.

Lati yago fun ibajẹ data, da iṣẹ duro ti o ba n ṣiṣẹ lọwọlọwọ ṣaaju ṣiṣe. Lo awọn ofin ti o mọ daradara lati ṣe bẹ:

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

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

OR

# service mysql stop
# service mysql status

Ti o ba ti mu iṣẹ naa sọkalẹ, ṣiṣe ti aṣẹ to kẹhin yẹ ki o jẹ atẹle:

Lẹhinna daakọ lẹẹkọọkan awọn akoonu ti /var/lib/mysql si /mnt/mysql-data toju awọn igbanilaaye akọkọ ati awọn akoko aago:

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

Ṣatunkọ faili iṣeto ( my.cnf ) lati tọka itọsọna data tuntun (/mnt/mysql-data ninu ọran yii).

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

Wa awọn apakan [mysqld] ati [alabara] ki o ṣe awọn ayipada wọnyi:

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

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

Fipamọ awọn ayipada ati lẹhinna tẹsiwaju pẹlu igbesẹ ti n tẹle.

Igbesẹ yii wulo nikan si RHEL/CentOS ati awọn itọsẹ rẹ.

Ṣafikun ọgangan aabo SELinux si /mnt/mysql-data ṣaaju ki o to tun bẹrẹ MariaDB.

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

Nigbamii tun bẹrẹ iṣẹ 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

Bayi, lo aṣẹ kanna bi ni Igbesẹ 1 lati ṣayẹwo ipo ti itọsọna data tuntun:

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

Wọle si MariaDB, ṣẹda ibi ipamọ data tuntun lẹhinna ṣayẹwo /mnt/mysql-data :

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

Oriire! O ti yipada ni itọsọna data fun MySQL tabi MariaDB.

Ninu ifiweranṣẹ yii, a ti jiroro bi a ṣe le yi itọsọna data pada ninu olupin MySQL tabi olupin MariaDB ti n ṣiṣẹ lori awọn kaakiri CentOS/RHEL 7 ati awọn pinpin Ubuntu/Debian.

Ṣe o ni awọn ibeere tabi awọn asọye nipa nkan yii? Ni ominira lati jẹ ki a mọ nipa lilo fọọmu ti o wa ni isalẹ - a ni idunnu nigbagbogbo lati gbọ lati ọdọ rẹ!