Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zmienić domyślny katalog danych MySQL/MariaDB w systemie Linux?

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

Niektóre z nich dotyczą zwiększania bezpieczeństwa Apache i MySQL / MariaDB, podczas gdy inne mogą mieć zastosowanie lub nie, w zależności od naszej konfiguracji lub potrzeb.

Na przykład, w oparciu o oczekiwane wykorzystanie serwera bazy danych, możemy chcieć zmienić domyślne dane katalog (/var/lib/mysql ) do innej lokalizacji. Dzieje się tak w przypadku, gdy taki katalog ma się rozrastać z powodu dużego użycia.

W przeciwnym razie system plików, w którym /var jest przechowywany, może zawalić się w jednym punkcie, powodując awarię całego systemu. Inny scenariusz, w którym zmiana katalogu domyślnego ma miejsce, 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 dystrybucjach Ubuntu/Debian.

Chociaż będziemy używać MariaDB , wyjaśnione koncepcje i kroki podjęte w tym artykule dotyczą zarówno MySQL i do MariaDB chyba że zaznaczono inaczej.

Zmienianie domyślnego katalogu danych MySQL/MariaDB

Uwaga :Zakładamy, że nasz nowy katalog danych to /mnt/mysql-data . Należy zauważyć, że właścicielem tego katalogu powinien być mysql:mysql .

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

Dla Twojej wygody podzieliliśmy ten proces na 5 łatwych do wykonania 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 zakładaj, że nadal jest to /var/lib/mysql ponieważ mogło to zostać zmienione w przeszłości.

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

Po wprowadzeniu hasła MySQL wynik powinien być podobny do.

Krok 2:Skopiuj katalog danych MySQL do nowej lokalizacji

Aby uniknąć uszkodzenia danych, przed kontynuowaniem zatrzymaj usługę, jeśli jest aktualnie uruchomiona. Użyj systemu dobrze znane polecenia, aby to zrobić:

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

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

OR

# service mysql stop
# service mysql status

Jeśli usługa została wyłączona, dane wyjściowe ostatniego polecenia powinny wyglądać następująco:

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

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

Krok 3:Skonfiguruj nowy katalog danych MySQL

Edytuj plik konfiguracyjny (my.cnf ), aby wskazać nowy katalog danych (/mnt/mysql-data w tym przypadku).

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

Znajdź [mysqld] i [client] sekcje i wprowadź następujące zmiany:

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

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

Zapisz zmiany, a następnie przejdź do następnego kroku.

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

Ten krok dotyczy tylko 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 uruchom ponownie usługę 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

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

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

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 "CREATE DATABASE tecmint;"

Gratulacje! Pomyślnie zmieniłeś katalog danych dla MySQL lub MariaDB.

Podsumowanie

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

Masz pytania lub uwagi dotyczące tego artykułu? Daj nam znać, korzystając z poniższego formularza – zawsze cieszymy się z Twojej wiadomości!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak naprawić BŁĄD 1130 (HY000):Host nie może połączyć się z tym serwerem MySQL

  2. Jak napisać instrukcję IF ELSE w zapytaniu MySQL?

  3. MySQL - SELECT WHERE pole IN (podzapytanie) - Bardzo wolne dlaczego?

  4. Jak sprawdzić stan serwera w MySQL Workbench za pomocą GUI

  5. Połącz się z serwerem MySQL przez SSH w PHP