Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So führen Sie mehrere MySQL-Instanzen auf demselben Computer aus

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!