Manchmal müssen Sie möglicherweise mehrere MySQL-Instanzen auf einem einzigen Server ausführen. Beispielsweise müssen Sie möglicherweise verschiedene MySQL-Instanzen für Staging, Tests und Produktion testen. In diesem Artikel sehen wir uns an, wie man mehrere MySQL-Instanzen auf demselben Rechner, aber unterschiedlichen Ports, mit unterschiedlichen Protokolldateien und Konfigurationsparametern laufen lässt.
Wie man mehrere MySQL-Instanzen auf demselben Rechner ausführt
Hier sind die Schritte zum Ausführen mehrerer MySQL-Instanzen auf demselben Computer.
1. Öffnen Sie die MySQL-Konfigurationsdatei
Normalerweise finden Sie die MySQL-Konfigurationsdatei unter /etc/mysql/my.cnf . Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus, um die MySQL-Konfigurationsdatei zu öffnen.
$ sudo vi /etc/mysql/my.cnf
2. Mehrere MySQL-Instanzen konfigurieren
Sie werden die Standard-MySQL-Konfiguration ähnlich der unten gezeigten finden.
[mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 datadir = /data/mysql/mysql
Kopieren Sie den obigen Codeblock und fügen Sie ihn darunter in dieselbe Datei ein. Ersetzen Sie [mysqld] mit [mysqld1] und ändern Sie den Portwert auf 3307. Dadurch wird die neue Instanz zu mysqld1 laufen auf einem anderen Port 3307 mit einem anderen Prozessnamen mysqld1. Ändern Sie auf ähnliche Weise die Dateinamen von PID-Datei-, Socket- und Datadir-Variablen wie unten gezeigt.
Stellen Sie sicher, dass Sie den datadir-Ordner für jede Instanz unten kopieren. Stellen Sie außerdem sicher, dass der Benutzer mysql Benutzer hat Zugriffsberechtigungen darauf. Jede Instanz benötigt ein eigenes Datenverzeichnis.
[mysqld1] user = mysql pid-file = /var/run/mysqld/mysqld1.pid socket = /var/run/mysqld/mysqld1.sock port = 3307 datadir = /data/mysql/mysql1
Jetzt mysqld1 wird als separate Instanz von mysqld ausgeführt
Ebenso können Sie wie unten gezeigt weitere Instanzen erstellen
[mysqld2] user = mysql pid-file = /var/run/mysqld/mysqld2.pid socket = /var/run/mysqld/mysqld2.sock port = 3308 datadir = /data/mysql/mysql2 .... [mysqldN] user = mysql pid-file = /var/run/mysqld/mysqldN.pid socket = /var/run/mysqld/mysqldN.sock port = N datadir = /data/mysql/mysqlN
Stellen Sie sicher, dass Sie für jede Instanz eine andere PID-Datei, Socket-Datei und ein anderes Datenverzeichnis angeben, und stellen Sie sicher, dass der Benutzer mysql benötigte Verzeichnisberechtigungen, weil die mysql Benutzer sollten in der Lage sein, erforderliche Dateien und Verzeichnisse zu erstellen.
3. Mehrere Instanzen verwalten
Sie können jede Instanz separat mit mysqld starten Befehl unten. Ersetzen Sie mysqlN mit Ihrer Wahl der Instanz (z. B. mysql1, mysql2 usw.)
mysqld --initialize --user=mysql --datadir=/home/mysql/mysqlN
Wenn die obige Konfiguration aus irgendeinem Grund bei Ihnen nicht funktioniert, kopieren Sie die my.cnf-Datei nach /etc/my.cnf Ort und versuchen Sie es erneut. Manchmal registriert mysql nicht mehrere Instanzen, die unter /etc/mysql/my.cnf konfiguriert sind
$ sudo cp /etc/mysql/my.cnf /etc/my.cnf
Wenn Sie sich über die Befehlszeile bei einer bestimmten Instanz (z. B. mysqld1) anmelden möchten, müssen Sie den Speicherort der Socket-Datei mit der Option -S angeben. Andernfalls werden Sie bei der Standard-MySQL-Instanz angemeldet.
mysql -u root -p -S /var/run/mysqld/mysqld1.sock
Hoffentlich hilft Ihnen dieser Artikel dabei, mehrere MySQL-Instanzen auf demselben Server zu konfigurieren und zu verwalten.
Benötigen Sie ein Reporting-Tool für MySQL? Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!