Jak zmienić domyślny katalog danych MySQL/MARIADB w Linux

Jak zmienić domyślny katalog danych MySQL/MARIADB w Linux

Po zainstalowaniu komponentów stosu lampy na serwerze CentOS/RHEL 7, istnieje kilka rzeczy, które możesz chcieć zrobić.

Niektóre z nich mają związek z zwiększeniem bezpieczeństwa apache i mysql / mariadb, podczas gdy inne mogą mieć zastosowanie lub nie zgodnie z naszą konfiguracją lub potrzebami.

Na przykład, w oparciu o oczekiwane użycie serwera bazy danych, możemy chcieć zmienić domyślne dane katalog (/var/lib/mysql) do innej lokalizacji. Tak jest, gdy oczekuje się, że taki katalog wzrośnie z powodu wysokiego użycia.

W przeciwnym razie system plików, gdzie /var jest przechowywany w jednym punkcie, powodując awarię całego systemu. Kolejnym scenariuszem, w którym zmiana domyślnego katalogu jest, gdy mamy dedykowany udział sieciowy, którego chcemy użyć do przechowywania naszych rzeczywistych danych.

Z tego powodu w tym artykule wyjaśnimy, jak zmienić domyślny katalog danych MySQL/MARIADB na inną ścieżkę na serwerze CentOS/RHEL 7 i rozkładach Ubuntu/Debian.

Chociaż będziemy używać Mariadb, Wyjaśnione pojęcia i kroki podjęte w tym artykule dotyczą zarówno Mysql i do Mariadb o ile nie zaznaczono inaczej.

Zmiana domyślnego katalogu danych MySQL/MARIADB

Notatka: Zakładamy, że nasz nowy katalog danych jest /mnt/mysql-data. Należy zauważyć, że ten katalog powinien być własnością Mysql: Mysql.

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

Dla Twojej wygody podzieliliśmy proces na 5 łatwych do naśladowania kroków:

Krok 1: Zidentyfikuj bieżący katalog danych MySQL

Na początek warto i dobrze zidentyfikować bieżący katalog danych za pomocą następującego polecenia. Nie tylko zakładaj, że to wciąż /var/lib/mysql Ponieważ w przeszłości można go było zmienić.

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

Po wprowadzeniu hasła MySQL wyjście powinno być podobne do.

Zidentyfikuj katalog danych MySQL

Krok 2: Skopiuj katalog danych MySQL do nowej lokalizacji

Aby uniknąć uszkodzenia danych, zatrzymaj Usługę, jeśli jest ona obecnie uruchomiona przed kontynuowaniem. Użyj Systemd dobrze znane polecenia:

------------- Na systemd ------------- # Systemctl Stop MariaDb # Systemctl IS-Active MariaDB ------------- Na Sysvinit ------------- # Service Mysqld Stop # Service Mysqld Status lub # Service Mysql Stop # Service MySQL Status 

Jeśli usługa została obniżona, wyjście ostatniego polecenia powinno być następujące:

Zatrzymaj usługę MySQL

Następnie skopiuj rekurencyjnie zawartość /var/lib/mysql Do /mnt/mysql-data Zachowanie oryginalnych uprawnień i znaczników czasu:

# cp -r -p/var/lib/mysql/*/mnt/mysql -data 
Skopiuj katalog danych MySQL do nowej lokalizacji

Krok 3: Skonfiguruj nowy katalog danych MySQL

Edytuj plik konfiguracyjny (Mój.CNF) Aby wskazać nowy katalog danych (/mnt/mysql-data w tym przypadku).

# vi /etc /my.cnf lub # vi/etc/mysql/my.CNF 

Znajdź [Mysqld] I [klient] Sekcje i dokonaj następujących zmian:

Under [Mysqld]: datadir =/mnt/mysql-data gniazdo =/mnt/mysql-data/mysql.skarpetka Under [Klient]: port = 3306 Socket =/mnt/mysql-data/mysql.skarpetka 

Zapisz zmiany, a następnie kontynuuj następny krok.

Skonfiguruj nowy katalog danych MySQL

Krok 4: Ustaw kontekst bezpieczeństwa Selinux na katalog danych

Ten krok dotyczy tylko do RHEL/CENTOS i jego pochodne.

Dodaj kontekst bezpieczeństwa Selinux do /mnt/mysql-data Przed ponownym uruchomieniem Mariadb.

# semanage fcontext -a -t mysqld_db_t "/mnt/mysql -data (/.*)?" # RESTORECON -r /MNT /MYSQL -DATA 

Następnie ponownie uruchom usługę MySQL.

------------- Na systemd ------------- # Systemctl Stop MariaDb # Systemctl IS-Active MariaDB ------------- Na Sysvinit ------------- # Service Mysqld Stop # Service Mysqld Status lub # Service Mysql Stop # Service MySQL Status 

Teraz użyj tego samego polecenia, co w Krok 1 Aby zweryfikować lokalizację nowego katalogu danych:

# mysql -u root -p -e "select @@ datadir;" 
Sprawdź nowy katalog danych MySQL

Krok 5: Utwórz bazę danych MySQL, aby potwierdzić katalog danych

Zaloguj się do Mariadb, utwórz nową bazę danych, a następnie sprawdź /mnt/mysql-data:

# mysql -u root -p -e "Utwórz bazę danych TecMint;" 
Sprawdź MySQL Nowy katalog danych

Gratulacje! Z powodzeniem zmieniłeś katalog danych dla MySQL lub MARIADB.

Streszczenie

W tym poście omówiliśmy, jak zmienić katalog danych na serwerze MySQL lub MARIADB działającym na dystrybucjach Centos/Rhel 7 i Ubuntu/Debian.

Czy masz jakieś pytania lub komentarze na temat tego artykułu? Daj nam znać, używając poniższego formularza - zawsze cieszymy się, że słyszymy od Ciebie!