Efter att ha installerat komponenterna i en LAMP-stack på en CentOS/RHEL 7-server finns det ett par saker du kanske vill göra.
Vissa av dem har att göra med att öka säkerheten för Apache och MySQL / MariaDB, medan andra kan vara tillämpliga eller inte enligt våra inställningar eller behov.
Till exempel, baserat på den förväntade användningen av databasservern, kanske vi vill ändra standard data katalog (/var/lib/mysql
) till en annan plats. Detta är fallet när en sådan katalog förväntas växa på grund av hög användning.
Annars är filsystemet /var
lagras kan kollapsa vid ett tillfälle vilket gör att hela systemet misslyckas. Ett annat scenario där vi ändrar standardkatalogen är när vi har en dedikerad nätverksresurs som vi vill använda för att lagra våra faktiska data.
Av denna anledning kommer vi i den här artikeln att förklara hur man ändrar standarddatakatalogen MySQL / MariaDB till en annan sökväg på en CentOS/RHEL 7-server och Ubuntu/Debian-distributioner.
Även om vi kommer att använda MariaDB , begreppen som förklaras och de steg som tas i den här artikeln gäller både MySQL och till MariaDB om inte annat anges.
Ändra standard MySQL/MariaDB Data Directory
Obs :Vi kommer att anta att vår nya datakatalog är /mnt/mysql-data
. Det är viktigt att notera att den här katalogen bör ägas av mysql:mysql
.
# mkdir /mnt/mysql-data # chown -R mysql:mysql /mnt/mysql-data
För din bekvämlighet har vi delat upp processen i fem enkla steg:
Steg 1:Identifiera aktuell MySQL-datakatalog
Till att börja med är det värt och bra att identifiera den aktuella datakatalogen med följande kommando. Anta inte bara att det fortfarande är /var/lib/mysql
eftersom det kunde ha ändrats tidigare.
# mysql -u root -p -e "SELECT @@datadir;"
När du har angett MySQL-lösenordet bör utdata vara liknande.
Steg 2:Kopiera MySQL-datakatalogen till en ny plats
För att undvika datakorruption, stoppa tjänsten om den körs för närvarande innan du fortsätter. Använd systemd välkända kommandon för att göra det:
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
Om tjänsten har tagits ner, bör utdata från det sista kommandot vara som följer:
Kopiera sedan rekursivt innehållet i /var/lib/mysql
till /mnt/mysql-data
bevara ursprungliga behörigheter och tidsstämplar:
# cp -R -p /var/lib/mysql/* /mnt/mysql-data
Steg 3:Konfigurera en ny MySQL-datakatalog
Redigera konfigurationsfilen (my.cnf
) för att ange den nya datakatalogen (/mnt/mysql-data
i det här fallet).
# vi /etc/my.cnf OR # vi /etc/mysql/my.cnf
Leta upp [mysqld]
och [client]
och gör följande ändringar:
Under [mysqld]: datadir=/mnt/mysql-data socket=/mnt/mysql-data/mysql.sock Under [client]: port=3306 socket=/mnt/mysql-data/mysql.sock
Spara ändringarna och fortsätt sedan med nästa steg.
Steg 4:Ställ in SELinux Security Context till Data Directory
Det här steget är endast tillämpligt på RHEL/CentOS och dess derivat.
Lägg till SELinux säkerhetskontext till /mnt/mysql-data
innan du startar om MariaDB.
# semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?" # restorecon -R /mnt/mysql-data
Starta sedan om MySQL-tjänsten.
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
Använd nu samma kommando som i Steg 1 för att verifiera platsen för den nya datakatalogen:
# mysql -u root -p -e "SELECT @@datadir;"
Steg 5:Skapa MySQL-databas för att bekräfta datakatalogen
Logga in på MariaDB, skapa en ny databas och kontrollera sedan /mnt/mysql-data
:
# mysql -u root -p -e "CREATE DATABASE tecmint;"
Grattis! Du har framgångsrikt ändrat datakatalogen för MySQL eller MariaDB.
Sammanfattning
I det här inlägget har vi diskuterat hur man ändrar datakatalogen i en MySQL- eller MariaDB-server som körs på CentOS/RHEL 7 och Ubuntu/Debian-distributioner.
Har du några frågor eller kommentarer om den här artikeln? Meddela oss gärna genom att använda formuläret nedan – vi är alltid glada att höra från dig!