So ändern Sie ein MySQL-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 die Verlagerung des MySQL-Datenverzeichnisses.

Voraussetzungen

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

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

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

mysql -u root -p

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

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

Diese Ausgabe bestätigt, dass MySQL für die Verwendung des Standarddatenverzeichnisses "+ / var / lib / mysql /" konfiguriert ist. Dieses Verzeichnis müssen wir also verschieben. 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 sicherzustellen, werden wir MySQL herunterfahren, bevor wir das Datenverzeichnis tatsächlich ändern:

sudo systemctl stop mysqld

+ 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 mysqld

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

Output. . .
Jul 18 11:24:20 ubuntu-512mb-nyc1-01 systemd[1]: Stopped MySQL Community 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 im + [mysqld] + - Block, die mit + datadir = + beginnt und durch mehrere Kommentare von der Blocküberschrift getrennt ist. Ä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 + [mysqld] + -Block aufgeteilt werden:

/etc/my.cnf

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

Schritt 3 - Neustart von MySQL

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

sudo systemctl start mysqld
sudo systemctl status mysqld

Starten Sie den MySQL-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)

Nachdem Sie MySQL neu gestartet und bestätigt haben, dass es den neuen Speicherort verwendet, 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 Tutorial haben wir das Datenverzeichnis von MySQL an einen neuen Speicherort verschoben und SELinux aktualisiert, um die Anpassung zu ermöglichen. 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.

Weitere Informationen zum Verwalten der Datenverzeichnisse von MySQL finden Sie in den folgenden Abschnitten der offiziellen MySQL-Dokumentation:

Related