Technologieaustausch

So öffnen Sie mehrere MySQL-Datenbanken unter Linux und legen Passwörter und Ports individuell fest

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Auf Linux-Systemen unterstützt MySQL (oder MariaDB, ein beliebter MySQL-Fork) standardmäßig nicht direkt die Ausführung mehrerer MySQL-Instanzen auf demselben Computer, wobei jede Instanz einen anderen Port und ein unabhängiges Passwortsystem verwendet. Sie können dies jedoch erreichen, indem Sie mehrere MySQL-Instanzen (auch Multiinstanzen genannt) konfigurieren. Dies beinhaltet normalerweise die Konfiguration unterschiedlicher Ports, Datenverzeichnisse, Konfigurationsdateien und möglicherweise Benutzerberechtigungen für jede Instanz.

Hier sind die grundlegenden Schritte zum Konfigurieren mehrerer MySQL-Instanzen:

1. Vorbereitung

Stellen Sie sicher, dass Sie über eine funktionierende MySQL-Installation verfügen. In dieser Anleitung wird davon ausgegangen, dass Sie MySQL verwenden. Wenn Sie jedoch MariaDB verwenden, sind die Schritte sehr ähnlich.

2. Erstellen Sie ein neues Datenverzeichnis

Erstellen Sie für jede MySQL-Instanz ein neues Datenverzeichnis:

sudo mkdir -p /data/mysql1 /data/mysql2
sudo chown -R mysql:mysql /data/mysql1 /data/mysql2

Hier/data/mysql1Und/data/mysql2sind die Datenverzeichnisse zweier verschiedener Instanzen.

3. Kopieren und ändern Sie die Konfigurationsdatei

Die Standardkonfigurationsdatei für MySQL ist normalerweise/etc/my.cnf(oder/etc/mysql/my.cnf , abhängig von Ihrer Distribution). Sie müssen für jede Instanz eine neue Konfigurationsdatei erstellen.

  • Kopieren Sie die Profilvorlage (falls sie nicht vorhanden ist, können Sie sie aus der Standardkonfiguration erstellen):
sudo cp /etc/my.cnf /etc/mysql1.cnf
sudo cp /etc/my.cnf /etc/mysql2.cnf
  • Ändern Sie die folgenden Abschnitte jeder Konfigurationsdatei:

    • [mysqld]Einstellungen unter Abschnittdatadirfür neu angelegte Datenverzeichnisse (z.B./data/mysql1oder/data/mysql2)。
    • Anders einstellenport(Zum Beispiel verwendet die erste Instanz 3306, die zweite Instanz 3307).
    • Möglicherweise müssen Sie auch festlegensocketPfade und stellen Sie sicher, dass sie einzigartig sind.
    • (optionale) EinstellungenuserUndlog_errorund andere Optionen, um sicherzustellen, dass die Instanz unabhängig läuft.

4. Initialisieren Sie das Datenverzeichnis (falls nicht bereits initialisiert).

Für neue MySQL-Instanzen müssen Sie das Datenverzeichnis initialisieren.Dabei geht es in der Regel um Laufenmysqld --initializeodermysql_install_db (Abhängig von Ihrer MySQL-Version). Beachten Sie, dass dadurch möglicherweise vorhandene Daten überschrieben werden.

sudo mysqld --initialize --user=mysql --datadir=/data/mysql1
sudo mysqld --initialize --user=mysql --datadir=/data/mysql2

5. Starten Sie die MySQL-Instanz

Sie müssen für jede Instanz oder Verwendung ein Startskript schreibensystemd Unit-Dateien, um sie zu verwalten. Dies ist oft komplex und muss an Ihre spezifischen Bedürfnisse und Systemumgebung angepasst werden.

Ein vereinfachter Ansatz ist die Verwendungmysqld_safeOder führen Sie es direkt über die Befehlszeile ausmysqldDies ist jedoch nicht für Produktionsumgebungen geeignet.

6. Legen Sie Passwörter und Berechtigungen fest

Jede Instanz verfügt nach der Initialisierung über ein Standard-Root-Passwort (MySQL 5.7.6 und höher). Sie müssen für jede Instanz unabhängige Passwörter und Benutzerberechtigungen festlegen.

  • Melden Sie sich bei jeder Instanz an (mit--socketUnd--portOptionen).
  • verwendenALTER USERAnweisung zum Festlegen des Root-Passworts.
  • Erstellen Sie einen neuen Benutzer und autorisieren Sie ihn.

7. Wartung und Überwachung

Stellen Sie sicher, dass Sie über Überwachungs- und Sicherungsstrategien verfügen, um Ihre mehreren MySQL-Instanzen zu verwalten.

Beachten

  • Die oben genannten Schritte geben einen allgemeinen Überblick und müssen möglicherweise an Ihre spezifische Umgebung angepasst werden.
  • Das Ausführen mehrerer MySQL-Instanzen kann die Systemkomplexität und den Ressourcenverbrauch erhöhen.
  • Stellen Sie sicher, dass Ihre System-Firewall und Netzwerkkonfiguration den Zugriff auf jede Instanz über den entsprechenden Port zulässt.