Po instalaci komponent zásobníku LAMP na server CentOS/RHEL 7 existuje několik věcí, které možná budete chtít udělat.
Některé z nich mají co do činění se zvýšením zabezpečení Apache a MySQL / MariaDB, zatímco jiné mohou být použitelné nebo ne podle našeho nastavení nebo potřeb.
Například na základě očekávaného využití databázového serveru můžeme chtít změnit výchozí data adresář (/var/lib/mysql
) na jiné místo. To je případ, kdy se očekává, že se takový adresář bude zvětšovat kvůli vysokému využití.
Jinak souborový systém kde /var
se může v jednom bodě zhroutit a způsobit selhání celého systému. Dalším scénářem, kdy se mění výchozí adresář, je situace, kdy máme vyhrazenou síťovou sdílenou složku, kterou chceme použít k ukládání našich skutečných dat.
Z tohoto důvodu v tomto článku vysvětlíme, jak změnit výchozí datový adresář MySQL / MariaDB na jinou cestu na serveru CentOS/RHEL 7 a distribucích Ubuntu/Debian.
I když budeme používat MariaDB , vysvětlené pojmy a kroky provedené v tomto článku platí pro MySQL a do MariaDB pokud není uvedeno jinak.
Změna výchozího adresáře dat MySQL/MariaDB
Poznámka :Budeme předpokládat, že náš nový datový adresář je /mnt/mysql-data
. Je důležité si uvědomit, že tento adresář by měl vlastnit mysql:mysql
.
# mkdir /mnt/mysql-data # chown -R mysql:mysql /mnt/mysql-data
Pro vaše pohodlí jsme proces rozdělili do 5 snadno pochopitelných kroků:
Krok 1:Identifikujte aktuální adresář dat MySQL
Pro začátek je vhodné a vhodné identifikovat aktuální datový adresář pomocí následujícího příkazu. Nepředpokládejte, že je to stále /var/lib/mysql
protože to mohlo být v minulosti změněno.
# mysql -u root -p -e "SELECT @@datadir;"
Po zadání hesla MySQL by měl být výstup podobný jako.
Krok 2:Zkopírujte adresář dat MySQL do nového umístění
Chcete-li předejít poškození dat, zastavte službu, pokud je aktuálně spuštěna, než budete pokračovat. Použijte systemd dobře známé příkazy k tomu:
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
Pokud byla služba spuštěna, výstup posledního příkazu by měl být následující:
Poté rekurzivně zkopírujte obsah /var/lib/mysql
na /mnt/mysql-data
zachování původních oprávnění a časových razítek:
# cp -R -p /var/lib/mysql/* /mnt/mysql-data
Krok 3:Konfigurace nového adresáře dat MySQL
Upravte konfigurační soubor (my.cnf
) k označení nového datového adresáře (/mnt/mysql-data
v tomto případě).
# vi /etc/my.cnf OR # vi /etc/mysql/my.cnf
Vyhledejte [mysqld]
a [client]
sekce a proveďte následující změny:
Under [mysqld]: datadir=/mnt/mysql-data socket=/mnt/mysql-data/mysql.sock Under [client]: port=3306 socket=/mnt/mysql-data/mysql.sock
Uložte změny a pokračujte dalším krokem.
Krok 4:Nastavte kontext zabezpečení SELinux na Data Directory
Tento krok platí pouze pro RHEL/CentOS a jeho deriváty.
Přidejte kontext zabezpečení SELinux do /mnt/mysql-data
před restartováním MariaDB.
# semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?" # restorecon -R /mnt/mysql-data
Poté restartujte službu 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
Nyní použijte stejný příkaz jako v Kroku 1 k ověření umístění nového datového adresáře:
# mysql -u root -p -e "SELECT @@datadir;"
Krok 5:Vytvořte databázi MySQL pro potvrzení adresáře dat
Přihlaste se do MariaDB, vytvořte novou databázi a poté zkontrolujte /mnt/mysql-data
:
# mysql -u root -p -e "CREATE DATABASE tecmint;"
Gratulujeme! Úspěšně jste změnili datový adresář pro MySQL nebo MariaDB.
Shrnutí
V tomto příspěvku jsme diskutovali o tom, jak změnit datový adresář na serveru MySQL nebo MariaDB běžícím na distribucích CentOS/RHEL 7 a Ubuntu/Debian.
Máte nějaké dotazy nebo připomínky k tomuto článku? Neváhejte a dejte nám vědět pomocí níže uvedeného formuláře – vždy nás rádi slyšíme!