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:
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.
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/mysql1
Und/data/mysql2
sind die Datenverzeichnisse zweier verschiedener Instanzen.
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.
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 Abschnittdatadir
für neu angelegte Datenverzeichnisse (z.B./data/mysql1
oder/data/mysql2
)。port
(Zum Beispiel verwendet die erste Instanz 3306, die zweite Instanz 3307).socket
Pfade und stellen Sie sicher, dass sie einzigartig sind.user
Undlog_error
und andere Optionen, um sicherzustellen, dass die Instanz unabhängig läuft. Für neue MySQL-Instanzen müssen Sie das Datenverzeichnis initialisieren.Dabei geht es in der Regel um Laufenmysqld --initialize
odermysql_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 |
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_safe
Oder führen Sie es direkt über die Befehlszeile ausmysqld
Dies ist jedoch nicht für Produktionsumgebungen geeignet.
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.
--socket
Und--port
Optionen).ALTER USER
Anweisung zum Festlegen des Root-Passworts.Stellen Sie sicher, dass Sie über Überwachungs- und Sicherungsstrategien verfügen, um Ihre mehreren MySQL-Instanzen zu verwalten.