Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So ändern Sie ein standardmäßiges MySQL/MariaDB-Datenverzeichnis in Linux

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!