IBM Cloud Docs
MySQL-Datenverzeichnis in einer UNIX-Umgebung oder ähnlichen Umgebung ändern

MySQL-Datenverzeichnis in einer UNIX-Umgebung oder ähnlichen Umgebung ändern

Führen Sie die folgenden Schritte durch, um das MySQL-Datenverzeichnis zu ändern:

  1. Melden Sie sich beim Server an, indem Sie PuTTY oder Ihr bevorzugter Kunde.

    Wenn Sie eine dedizierte Partition für das Datenverzeichnis verwenden, stellen Sie sicher, dass Sie die neue Partition über eine Mountoperation anstelle des ursprünglichen Datenverzeichnisses bereitstellen, nachdem Sie die Daten hinüber kopiert haben. Durch das Mounten einer neuen Partition werden nicht standardmäßige Konfigurationsänderungen gespeichert, mit denen einige Anwendungen möglicherweise nicht funktionieren.

  2. Beenden Sie mysqld (MySQL-Dämon). Der Prozess zum Starten und Stoppen des Dämons kann je nach Betriebssystem und Verteilung anders sein. MySQL muss während Prozessen, die sich direkt auf die unformatierten Dateien auswirken, gestoppt werden.

    /etc/init.d/mysql stop

    ODER

    /etc/init.d/mysqld, /etc/init.d/mysql-server, /usr/loca/etc/init.d/mysql, /opt/lamp…

  3. Bevor Sie Änderungen vornehmen, führen Sie ein Backup für die Datenbank durch. Stellen Sie sicher, dass der MySQL-Dämon nicht ausgeführt wird, wenn Sie Kopien der unformatierten Datenbankdateien machen.

Wenn Sie cPanel auf dem Server ausführen, stoppen Sie cPanel ('TailWatch' und 'chkservd'), bevor der Dämon erneut gestartet wird. Sie können eine temporäre Datei /etc/chkserv.d/mysqlisevil erstellen, um zu verhindern, dass chkservd den Service erneut startet. Wenn Sie nicht mit 'rsync' vertraut sind, können Sie das Backup mit einem anderen Tool erstellen.

rsync -vaP /var/lib/mysql/ /var/lib/mysql.'date +%s'

  1. Erstellen Sie das Datenverzeichnis und geben Sie das Eigentumsrecht des MySQL-Benutzers (bzw. des Benutzers, der in der Datei 'my.cnf' mit globalen Optionen definiert ist) an. In diesem Beispiel wird die Speicherposition /var/lib/mysql-data verwendet; Sie können jedoch jede beliebige Position verwenden. Wenn Sie speziell für diesen Zweck eine Platte/eine logische Einheit hinzufügen, dann müssen Sie den entsprechenden Eintrag auch in /etc/fstab einfügen und für das Verzeichnis eine Mountoperation durchführen, bevor Sie fortfahren.

    chown mysql:mysql /var/lib/mysql-data

  2. Erstellen Sie eine endgültige Kopie des ursprünglichen Verzeichnisses in das neue MySQL Datenverzeichnis (achten Sie darauf, dass die folgenden / am Ende des ersten Verzeichnisses):

    rsync -vaP /var/lib/mysql/ /var/lib/mysql-data

  3. Stellen Sie sicher, dass das neue Datenverzeichnis das korrekte Eigentumsrecht aufweist, also entweder den MySQL-Standardbenutzer bzw. die Standardgruppe oder den Benutzer, der in der Datei 'my.cnf' mit den globalen Optionen angegeben ist. Wenn Sie unsicher sind, können Sie den folgenden Befehl verwenden, um rekursiv der Eigner für die gesamte Hierarchie des MySQL-Benutzers bzw. der Gruppe zu sein.

    chown -R mysql:mysql /var/lib/mysql-data

Der MySQL-Benutzer muss die vollständige Berechtigung (rwx) für die Datenbankordner haben und über Lese-/Schreibberechtigungen für Protokoll-, Bin-, Daten-, Index- und Formulardateien verfügen.

In der Regel ist für Datenbankordner die Berechtigung '700' (drwx------) erforderlich und sie müssen in einer gemeinsam genutzten Hosting-Umgebung 'mysql:mysql' angehören. In einer dedizierten Umgebung kann die Berechtigung mit 755 (drwxr-xr-x) großzügiger konfiguriert werden.

  1. Aktualisieren Sie die Konfigurationsdatei '/etc/my.cnf' so, dass sie auf das neue Datenverzeichnis verweist.

    Stellen Sie sicher, dass Sie alles sichern, bevor Sie Änderungen an der Konfigurationsdatei vornehmen.

    cp -vp /etc/my.cnf /etc/my.cnf.'date +%s' vi /etc/my.cnf

  2. Ersetzen Sie alle Instanzen von '/var/lib/mysql' durch '/var/lib/mysql-data'. Wenn Sie über keinen Eintrag für das Datenverzeichnis ('datadir') verfügen, platzieren Sie ihn in der Zeilengruppe [mysqld].

    [mysqld] user = mysql datadir = /var/lib/mysql-data socket = /var/lib/mysql-datal/mysql.sock

  3. Einige Anwendungen verfügen über eine angepasste Konfiguration. Nähere Informationen dazu würden jedoch den Rahmen dieses Dokuments sprengen. Für einige Scripts ist bekannt, dass sie fehlschlagen, wenn das Datenverzeichnis nicht '/var/lib/mysql' lautet. Daher wird ein symbolischer Link verwendet, um auf den neuen Speicherort zu verweisen.

    mv -v /var/lib/mysql /var/lib/mysql.orig

    ln -s /var/lib/mysql-data /var/lib/mysql

Wenn Sie den Link nicht erstellen möchten, stellen Sie sicher, dass Sie das 'mysql.default'-Socket und das 'mysqli.default'-Socket in 'php.ini' ändern und Apache vollständig stoppen und erneut starten.

  1. Starten Sie den MySQL-Dämon.

/etc/init.d/mysql start

  1. Stellen Sie sicher, dass MySQL ordnungsgemäß ausgeführt wird. Wenn MySQL nicht reagiert, überprüfen Sie die entsprechenden Fehlerprotokolle. Falls erforderlich, heben Sie die Änderungen wieder auf.

mysqladmin ping