Nach der Installation der Komponenten eines LAMP-Stacks auf einem CentOS/RHEL 7-Server gibt es ein paar Dinge, die Sie vielleicht tun möchten.
Einige von ihnen haben mit der Erhöhung der Sicherheit von Apache und MySQL/MariaDB zu tun, während andere je nach unserem Setup oder Bedarf anwendbar sein können oder nicht.
Basierend auf der erwarteten Verwendung des Datenbankservers möchten wir beispielsweise die Standard-Daten ändern Verzeichnis (/var/lib/mysql
) an einen anderen Ort. Dies ist der Fall, wenn erwartet wird, dass ein solches Verzeichnis aufgrund hoher Nutzung wächst.
Andernfalls das Dateisystem, in dem /var
gespeichert ist, kann irgendwann zusammenbrechen und das gesamte System ausfallen. Ein weiteres Szenario, in dem das Standardverzeichnis geändert wird, ist, wenn wir eine dedizierte Netzwerkfreigabe haben, die wir zum Speichern unserer eigentlichen Daten verwenden möchten.
Aus diesem Grund erklären wir in diesem Artikel, wie Sie das standardmäßige MySQL-/MariaDB-Datenverzeichnis auf einem CentOS/RHEL 7-Server und Ubuntu/Debian-Distributionen in einen anderen Pfad ändern.
Obwohl wir MariaDB verwenden werden , die in diesem Artikel erläuterten Konzepte und Schritte gelten sowohl für MySQL und zu MariaDB sofern nicht anders angegeben.
Ändern des standardmäßigen MySQL/MariaDB-Datenverzeichnisses
Hinweis :Wir gehen davon aus, dass unser neues Datenverzeichnis /mnt/mysql-data
ist . Es ist wichtig zu beachten, dass dieses Verzeichnis mysql:mysql
gehören sollte .
# mkdir /mnt/mysql-data # chown -R mysql:mysql /mnt/mysql-data
Der Einfachheit halber haben wir den Vorgang in 5 leicht verständliche Schritte unterteilt:
Schritt 1:Identifizieren Sie das aktuelle MySQL-Datenverzeichnis
Zu Beginn ist es sinnvoll und gut, das aktuelle Datenverzeichnis mit dem folgenden Befehl zu identifizieren. Gehen Sie nicht einfach davon aus, dass es immer noch /var/lib/mysql
ist da es in der Vergangenheit geändert worden sein könnte.
# mysql -u root -p -e "SELECT @@datadir;"
Nachdem Sie das MySQL-Passwort eingegeben haben, sollte die Ausgabe ähnlich aussehen wie.
Schritt 2:Kopieren Sie das MySQL-Datenverzeichnis an einen neuen Speicherort
Um Datenbeschädigungen zu vermeiden, beenden Sie den Dienst, falls er gerade ausgeführt wird, bevor Sie fortfahren. Verwenden Sie das systemd Bekannte Befehle dazu:
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
Wenn der Dienst heruntergefahren wurde, sollte die Ausgabe des letzten Befehls wie folgt aussehen:
Kopieren Sie dann rekursiv den Inhalt von /var/lib/mysql
nach /mnt/mysql-data
Erhaltung der ursprünglichen Berechtigungen und Zeitstempel:
# cp -R -p /var/lib/mysql/* /mnt/mysql-data
Schritt 3:Konfigurieren Sie ein neues MySQL-Datenverzeichnis
Bearbeiten Sie die Konfigurationsdatei (my.cnf
), um das neue Datenverzeichnis anzugeben (/mnt/mysql-data
in diesem Fall).
# vi /etc/my.cnf OR # vi /etc/mysql/my.cnf
Suchen Sie [mysqld]
und [client]
Abschnitte und nehmen Sie die folgenden Änderungen vor:
Under [mysqld]: datadir=/mnt/mysql-data socket=/mnt/mysql-data/mysql.sock Under [client]: port=3306 socket=/mnt/mysql-data/mysql.sock
Speichern Sie die Änderungen und fahren Sie dann mit dem nächsten Schritt fort.
Schritt 4:Legen Sie den SELinux-Sicherheitskontext auf das Datenverzeichnis fest
Dieser Schritt gilt nur für RHEL/CentOS und seine Derivate.
Fügen Sie den SELinux-Sicherheitskontext zu /mnt/mysql-data
hinzu bevor Sie MariaDB neu starten.
# semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?" # restorecon -R /mnt/mysql-data
Als nächstes starten Sie den MySQL-Dienst neu.
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
Verwenden Sie nun denselben Befehl wie in Schritt 1 um den Speicherort des neuen Datenverzeichnisses zu überprüfen:
# mysql -u root -p -e "SELECT @@datadir;"
Schritt 5:Erstellen Sie eine MySQL-Datenbank, um das Datenverzeichnis zu bestätigen
Melden Sie sich bei MariaDB an, erstellen Sie eine neue Datenbank und überprüfen Sie dann /mnt/mysql-data
:
# mysql -u root -p -e "CREATE DATABASE tecmint;"
Herzliche Glückwünsche! Sie haben das Datenverzeichnis für MySQL oder MariaDB erfolgreich geändert.
Zusammenfassung
In diesem Beitrag haben wir besprochen, wie man das Datenverzeichnis in einem MySQL- oder MariaDB-Server ändert, der auf CentOS/RHEL 7- und Ubuntu/Debian-Distributionen läuft.
Haben Sie Fragen oder Anmerkungen zu diesem Artikel? Teilen Sie uns dies gerne über das unten stehende Formular mit – wir freuen uns immer, von Ihnen zu hören!