sql >> Databáze >  >> RDS >> Mysql

Jak změnit výchozí adresář dat MySQL/MariaDB v Linuxu

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!


  1. Stromová struktura v SQL v Oracle. Jak zobrazit strom, podřízené uzly a nadřazené uzly v SQL Oracle

  2. Django ConnectionAbortedError:[WinError 10053] Navázané připojení bylo přerušeno softwarem ve vašem hostitelském počítači

  3. Jak mohu přidat sloupec, který nepovoluje hodnoty null v databázi Postgresql?

  4. Rozdíl mezi časovými razítky v milisekundách v Oracle