So ändern Sie ein MariaDB-Datenverzeichnis in einen neuen Speicherort unter CentOS 7

Einführung

Datenbanken werden im Laufe der Zeit immer größer und vergrößern manchmal den Speicherplatz im Dateisystem. Sie können auch auf E / A-Konflikte stoßen, wenn sich diese auf derselben Partition wie der Rest des Betriebssystems befinden. RAID, Netzwerkblockspeicher und andere Geräte können Redundanz und andere wünschenswerte Funktionen bieten. Unabhängig davon, ob Sie mehr Speicherplatz hinzufügen, Möglichkeiten zur Leistungsoptimierung evaluieren oder andere Speicherfunktionen nutzen möchten, führt Sie dieses Lernprogramm durch das Verschieben des MariaDB-Datenverzeichnisses.

Voraussetzungen

Um diesen Leitfaden zu vervollständigen, benötigen Sie:

  • * Ein CentOS 7-Server mit einem Nicht-Root-Benutzer mit "+ sudo +" - Berechtigungen und MariaDB *. Weitere Informationen zum Einrichten eines Benutzers mit diesen Berechtigungen finden Sie in unserem Initial Server Setup with CentOS 7 -Handbuch . Wenn Sie MariaDB noch nicht installiert haben, hilft Ihnen das How To Install MariaDB on CentOS 7 -Handbuch .

In diesem Beispiel werden die Daten auf ein Blockspeichergerät verschoben, das unter "+ / mnt / volume-nyc1-01 +" installiert ist. Informationen zum Einrichten finden Sie im Handbuch How To Use Block Storage on DigitalOcean.

Unabhängig davon, welchen zugrunde liegenden Speicher Sie verwenden, können Sie mit diesem Handbuch das Datenverzeichnis an einen neuen Speicherort verschieben.

Schritt 1 - Verschieben des MariaDB-Datenverzeichnisses

Um das Verschieben des MariaDB-Datenverzeichnisses vorzubereiten, überprüfen wir den aktuellen Speicherort, indem wir eine interaktive Sitzung mit den Administratoranmeldeinformationen starten.

mysql -u root -p

Wenn Sie dazu aufgefordert werden, geben Sie das MariaDB-Root-Passwort ein. Wählen Sie dann an der Eingabeaufforderung "+ mysql" das Datenverzeichnis aus:

select @@datadir;
Output+-----------------+
| @@datadir       |
+-----------------+
|  |
+-----------------+
1 row in set (0.00 sec)

Diese Ausgabe bestätigt, dass MariaDB für die Verwendung des Standarddatenverzeichnisses "+ / var / lib / mysql /" konfiguriert ist, sodass dieses Verzeichnis verschoben werden muss. Sobald Sie dies bestätigt haben, geben Sie "+ exit +" ein und drücken Sie "ENTER", um den Monitor zu verlassen:

exit

Um die Integrität der Daten zu gewährleisten, werden wir MariaDB herunterfahren, bevor wir das Datenverzeichnis tatsächlich ändern:

sudo systemctl stop mariadb

+ systemctl + zeigt nicht das Ergebnis aller Dienstverwaltungsbefehle an. Wenn Sie also sicher sein möchten, dass Sie erfolgreich waren, verwenden Sie den folgenden Befehl:

sudo systemctl status mariadb

Sie können sicher sein, dass es heruntergefahren wird, wenn die letzte Zeile der Ausgabe anzeigt, dass der Server gestoppt ist:

Output. . .
Dec 16 18:29:26 mysql systemd[1]: Stopped MariaDB database server.

Nachdem der Server heruntergefahren wurde, kopieren wir das vorhandene Datenbankverzeichnis mit "+ rsync " an den neuen Speicherort. Wenn Sie das Flag " -a " verwenden, bleiben die Berechtigungen und andere Verzeichniseigenschaften erhalten, während " -v +" eine ausführliche Ausgabe liefert, mit der Sie den Fortschritt verfolgen können.

sudo rsync -av /var/lib/mysql

Wenn das "+ rsync +" abgeschlossen ist, benennen Sie den aktuellen Ordner mit der Erweiterung ".bak" um und bewahren Sie ihn auf, bis wir den erfolgreichen Umzug bestätigt haben. Durch die Umbenennung vermeiden wir Verwechslungen, die durch Dateien am neuen und am alten Speicherort entstehen können:

sudo mv /var/lib/mysql /var/lib/mysql.bak

Jetzt können wir uns der Konfiguration widmen.

Schritt 2 - Auf den neuen Datenstandort zeigen

MySQL bietet verschiedene Möglichkeiten, Konfigurationswerte zu überschreiben. Standardmäßig ist das "+ datadir" in der "+ / etc / my.cnf" -Datei auf "+ / var / lib / mysql +" gesetzt. Bearbeiten Sie diese Datei, um das neue Datenverzeichnis wiederzugeben:

sudo vi /etc/my.cnf

Suchen Sie die Zeile, die mit "+ datadir = +" beginnt, und ändern Sie den folgenden Pfad, um die neue Position widerzuspiegeln. Da sich der Socket zuvor im Datenverzeichnis befand, müssen wir ihn außerdem auf den neuen Speicherort aktualisieren:

/etc/my.cnf

[mysqld]
. . .
datadir=/mysql
socket=/mysql/mysql.sock
. . .

Nach dem Aktualisieren der vorhandenen Zeilen müssen wir die Konfiguration für den "+ mysql" -Client hinzufügen. Fügen Sie die folgenden Einstellungen am Ende der Datei ein, damit die Direktiven nicht im Block "+ [mysqld] " und über der Zeile " include +" aufgeteilt werden:

/etc/my.cnf

!includedir /etc/my.cnf.d

Wenn Sie fertig sind, drücken Sie "+ ESCAPE " und geben Sie ": wq! +" Ein, um die Datei zu speichern und zu beenden.

Schritt 3 - MariaDB neu starten

Nachdem wir die Konfiguration aktualisiert haben, um den neuen Speicherort zu verwenden, können wir MariaDB starten und unsere Arbeit überprüfen.

sudo systemctl start mariadb
sudo systemctl status mariadb

Starten Sie den Monitor, um sicherzustellen, dass das neue Datenverzeichnis tatsächlich verwendet wird.

mysql -u root -p

Schauen Sie sich den Wert für das Datenverzeichnis noch einmal an:

select @@datadir;
Output+----------------------------+
| @@datadir                  |
+----------------------------+
|  |
+----------------------------+
1 row in set (0.01 sec)

Geben Sie + exit + ein, um den Monitor zu verlassen.

Nach dem Neustart von MariaDB und der Bestätigung, dass der neue Speicherort verwendet wird, können Sie sicherstellen, dass Ihre Datenbank voll funktionsfähig ist. Nachdem Sie die Integrität vorhandener Daten überprüft haben, können Sie das Sicherungsdatenverzeichnis mit + sudo rm -Rf / var / lib / mysql.bak + entfernen.

Fazit

In diesem Lernprogramm haben wir das Datenverzeichnis von MariaDB an einen neuen Speicherort verschoben. Obwohl wir ein Blockspeichergerät verwendet haben, sollten die Anweisungen hier geeignet sein, den Speicherort des Datenverzeichnisses unabhängig von der zugrunde liegenden Technologie neu zu definieren.

Da MariaDB als Drop-In-Ersatz für MySQL konzipiert wurde, erfahren Sie in der offiziellen MySQL-Dokumentation mehr über das Verwalten von Datenverzeichnissen in diesen Abschnitten: