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!