So führen Sie mehrere MySQL-Instanzen unter Windows aus

So führen Sie mehrere MySQL-Instanzen unter Windows aus

Vorwort

Unter Windows können Sie mehrere MySQL-Instanzen manuell über die Befehlszeile starten, indem Sie für jede Instanz die entsprechenden Parameter verwenden oder mehrere Server als Windows-Dienste installieren.

1. Erstellen Sie zwei neue Instanzdatenverzeichnisse data3307 und data3308 im Basisverzeichnis von MySQL in Windows.

2. Richten Sie für jede neue Instanz eine Konfigurationsdatei ein, um die relevanten Optionen anzugeben

Der Inhalt der Datei my3307.cnf ist wie folgt:

[mysql]
# Setzen Sie den Standardzeichensatz des MySQL-Clients auf default-character-set=utf8mb4

[mysqld]
# Port 3307 einstellen port = 3307
# Legen Sie das Installationsverzeichnis von MySQL auf basedir=D:\mysql-5.7.25-win32 fest.
# Legen Sie das Speicherverzeichnis für die MySQL-Datenbankdaten fest. MySQL 8+ erfordert die folgende Konfiguration nicht, das System kann sie selbst generieren, andernfalls wird möglicherweise ein Fehler gemeldet datadir=D:\mysql-5.7.25-win32\data3307
# Maximal zulässige Anzahl von Verbindungen max_connections=200
# Der vom Server verwendete Standardzeichensatz ist der 8-Bit-Latin1-Zeichensatz character-set-server=utf8mb4
# Die Standard-Speicher-Engine, die beim Erstellen einer neuen Tabelle verwendet wird default-storage-engine=INNODB
explizite_Vorgaben_für_Zeitstempel=true
log-error=D:\mysql-5.7.25-win32\mysql3307.err
pid-Datei=D:\mysql-5.7.25-win32\mysqld3307.pid
Socket =D:\mysql-5.7.25-win32\mysql3307.sock

Der Inhalt der Datei my3308.cnf ist wie folgt:

[mysql]
# Setzen Sie den Standardzeichensatz des MySQL-Clients auf default-character-set=utf8mb4

[mysqld]
# Port 3308 einstellen port = 3308
# Legen Sie das Installationsverzeichnis von MySQL auf basedir=D:\mysql-5.7.25-win32 fest.
# Legen Sie das Speicherverzeichnis für die MySQL-Datenbankdaten fest. MySQL 8+ erfordert die folgende Konfiguration nicht, das System kann sie selbst generieren, andernfalls wird möglicherweise ein Fehler gemeldet datadir=D:\mysql-5.7.25-win32\data3308
# Maximal zulässige Anzahl von Verbindungen max_connections=200
# Der vom Server verwendete Standardzeichensatz ist der 8-Bit-Latin1-Zeichensatz character-set-server=utf8mb4
# Die Standard-Speicher-Engine, die beim Erstellen einer neuen Tabelle verwendet wird default-storage-engine=INNODB
explizite_Vorgaben_für_Zeitstempel=true
log-error=D:\mysql-5.7.25-win32\mysql3308.err
pid-Datei=D:\mysql-5.7.25-win32\mysqld3308.pid
Socket =D:\mysql-5.7.25-win32\mysql3308.sock

3. Initialisieren Sie eine neue Datenbank

D:\mysql-5.7.25-win32\bin>mysqld --defaults-file=D:\mysql-5.7.25-win32\my3307.cnf --initialize --basedir=D:\mysql-5.7.25-win32 --datadir=D:\mysql-5.7.25-win32\data3307

D:\mysql-5.7.25-win32\bin>mysqld --defaults-file=D:\mysql-5.7.25-win32\my3308.cnf --initialize --basedir=D:\mysql-5.7.25-win32 --datadir=D:\mysql-5.7.25-win32\data3308

4. Starten Sie die Datenbank

D:\mysql-5.7.25-win32\bin>mysqld --defaults-file=D:\mysql-5.7.25-win32\my3307.cnf

D:\mysql-5.7.25-win32\bin>mysqld --defaults-file=D:\mysql-5.7.25-win32\my3308.cnf

Jeder Server wird im Vordergrund gestartet (es wird keine neue Eingabeaufforderung angezeigt, bis der Server später beendet wird), daher müssen Sie diese beiden Befehle in separaten Konsolenfenstern eingeben.

5. Melden Sie sich bei der Datenbank an und ändern Sie das Passwort

C:\Benutzer\Administrator>mysql --port=3307 --host=127.0.0.1 --user=root --password=U0U?KinrdWHb
mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein.
Willkommen beim MySQL-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MySQL-Verbindungs-ID ist 6
Serverversion: 5.7.25

Copyright (c) 2000, 2019, Oracle und/oder seine Tochtergesellschaften. Alle Rechte vorbehalten.

Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer
Tochtergesellschaften. Andere Namen können Marken ihrer jeweiligen
Eigentümer.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

mysql> ALTER USER 'root'@'localhost' IDENTIFIZIERT DURCH '123456';
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mysql> beenden
Tschüss

C:\Benutzer\Administrator>mysql --port=3307 --host=127.0.0.1 --user=root --password=123456
mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein.
Willkommen beim MySQL-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MySQL-Verbindungs-ID ist 7
Serverversion: 5.7.25 Quellverteilung

Copyright (c) 2000, 2019, Oracle und/oder seine Tochtergesellschaften. Alle Rechte vorbehalten.

Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer
Tochtergesellschaften. Andere Namen können Marken ihrer jeweiligen
Eigentümer.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

mysql> beenden


C:\Benutzer\Administrator>mysql --port=3308 --host=127.0.0.1 --user=root
Passwort eingeben: ************
Willkommen beim MySQL-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MySQL-Verbindungs-ID ist 8
Serverversion: 5.7.25

Copyright (c) 2000, 2019, Oracle und/oder seine Tochtergesellschaften. Alle Rechte vorbehalten.

Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer
Tochtergesellschaften. Andere Namen können Marken ihrer jeweiligen
Eigentümer.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

mysql> ALTER USER 'root'@'localhost' IDENTIFIZIERT DURCH '123456';
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mysql> beenden
Tschüss


C:\Benutzer\Administrator>mysql --port=3308 --host=127.0.0.1 --user=root --password=123456
mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein.
Willkommen beim MySQL-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MySQL-Verbindungs-ID ist 9
Serverversion: 5.7.25 Quellverteilung

Copyright (c) 2000, 2019, Oracle und/oder seine Tochtergesellschaften. Alle Rechte vorbehalten.

Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer
Tochtergesellschaften. Andere Namen können Marken ihrer jeweiligen
Eigentümer.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

MySQL>

6. Um den Datenbankserver herunterzufahren, stellen Sie über die entsprechende Portnummer eine Verbindung zu jeder Instanz her und führen Sie den folgenden Befehl aus:

C:\Benutzer\Administrator>mysqladmin --port=3307 --host=127.0.0.1 --user=root --password=123456 shutdown
mysqladmin: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein.

C:\Benutzer\Administrator>mysqladmin --port=3308 --host=127.0.0.1 --user=root --password=123456 shutdown
mysqladmin: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein.

Die obige Konfiguration ermöglicht Clients eine Verbindung über TCP/IP. Wenn Ihre Windows-Version Named Pipes unterstützt und Sie eine Verbindung über Named Pipes herstellen möchten, aktivieren Sie die Option „Named Pipes aktivieren“ und geben Sie deren Namen an. Jede Instanz, die Named Pipe-Verbindungen unterstützt, muss einen eindeutigen Pipe-Namen verwenden. Zum Beispiel:

Der Inhalt der Datei my3307.cnf ist wie folgt:

[mysql]
# Setzen Sie den Standardzeichensatz des MySQL-Clients auf default-character-set=utf8mb4

[mysqld]
# Port 3307 einstellen port = 3307
# Legen Sie das Installationsverzeichnis von MySQL auf basedir=D:\mysql-5.7.25-win32 fest.
# Legen Sie das Speicherverzeichnis für die MySQL-Datenbankdaten fest. MySQL 8+ erfordert die folgende Konfiguration nicht, das System kann sie selbst generieren, andernfalls wird möglicherweise ein Fehler gemeldet datadir=D:\mysql-5.7.25-win32\data3307
# Maximal zulässige Anzahl von Verbindungen max_connections=200
# Der vom Server verwendete Standardzeichensatz ist der 8-Bit-Latin1-Zeichensatz character-set-server=utf8mb4
# Die Standard-Speicher-Engine, die beim Erstellen einer neuen Tabelle verwendet wird default-storage-engine=INNODB
explizite_Vorgaben_für_Zeitstempel=true
log-error=D:\mysql-5.7.25-win32\mysql3307.err
pid-Datei=D:\mysql-5.7.25-win32\mysqld3307.pid
Named Pipe aktivieren
Socket =D:\mysql-5.7.25-win32\mysql3307.sock

Der Inhalt der Datei my3308.cnf ist wie folgt:

[mysql]
# Setzen Sie den Standardzeichensatz des MySQL-Clients auf default-character-set=utf8mb4

[mysqld]
# Port 3308 einstellen port = 3308
# Legen Sie das Installationsverzeichnis von MySQL auf basedir=D:\mysql-5.7.25-win32 fest.
# Legen Sie das Speicherverzeichnis für die MySQL-Datenbankdaten fest. MySQL 8+ erfordert die folgende Konfiguration nicht, das System kann sie selbst generieren, andernfalls wird möglicherweise ein Fehler gemeldet datadir=D:\mysql-5.7.25-win32\data3308
# Maximal zulässige Anzahl von Verbindungen max_connections=200
# Der vom Server verwendete Standardzeichensatz ist der 8-Bit-Latin1-Zeichensatz character-set-server=utf8mb4
# Die Standard-Speicher-Engine, die beim Erstellen einer neuen Tabelle verwendet wird default-storage-engine=INNODB
explizite_Vorgaben_für_Zeitstempel=true
log-error=D:\mysql-5.7.25-win32\mysql3308.err
pid-Datei=D:\mysql-5.7.25-win32\mysqld3308.pid
Socket =D:\mysql-5.7.25-win32\mysql3308.sock

Starten Sie dann die MySQL-Instanz. Der Vorgang zum Verbinden von Clients über den gemeinsam genutzten Speicher ähnelt dem obigen Vorgang. Verwenden Sie die Option --shared-memory für jede Verbindung und die Option --shared-memory-base-name, um für jede Instanz einen eindeutigen Namen für den gemeinsam genutzten Speicher anzugeben.

Starten mehrerer MySQL-Instanzen als Windows-Dienste in Windows

Unter Windows kann ein MySQL-Server als Windows-Dienst ausgeführt werden. Um mehrere MySQL-Server einzurichten, müssen Sie sicherstellen, dass jede Instanz einen anderen Dienstnamen verwendet und dass alle anderen Parameter für jede Instanz eindeutige Werte haben. Um den MySQL-Server als Windows-Dienst zu registrieren, verwenden Sie die Option mysqld --install oder mysqld --install-manual.

Basierend auf den obigen Informationen gibt es mehrere Möglichkeiten, mehrere Windows-Dienste einzurichten. Bevor Sie einen Windows-Dienst registrieren, müssen Sie alle vorhandenen Windows-Dienste beenden und löschen.

Methode 1

Geben Sie alle Serviceoptionen in einer Standardoptionsdatei an. Dies erfordert die Angabe eines anderen Dienstnamens für jeden MySQL-Dienst. Angenommen, der Dienstname der MySQL-Instanz mit Port 3307 ist mysqld1 und der Dienstname der MySQL-Instanz mit Port 3308 ist mysqld2. Anschließend wird D:\mysql-5.7.25-win32\my.ini wie folgt eingestellt:

[mysqld1]
# Port 3307 einstellen port = 3307
# Legen Sie das Installationsverzeichnis von MySQL auf basedir=D:\mysql-5.7.25-win32 fest.
# Legen Sie das Speicherverzeichnis für die MySQL-Datenbankdaten fest. MySQL 8+ erfordert die folgende Konfiguration nicht, das System kann sie selbst generieren, andernfalls wird möglicherweise ein Fehler gemeldet datadir=D:\mysql-5.7.25-win32\data3307
# Maximal zulässige Anzahl von Verbindungen max_connections=200
# Der vom Server verwendete Standardzeichensatz ist der 8-Bit-Latin1-Zeichensatz character-set-server=utf8mb4
# Die Standard-Speicher-Engine, die beim Erstellen einer neuen Tabelle verwendet wird default-storage-engine=INNODB
explizite_Vorgaben_für_Zeitstempel=true
log-error=D:\mysql-5.7.25-win32\mysql3307.err
pid-Datei=D:\mysql-5.7.25-win32\mysqld3307.pid
Socket =D:\mysql-5.7.25-win32\mysql3307.sock


[mysqld2]
# Port 3308 einstellen port = 3308
# Legen Sie das Installationsverzeichnis von MySQL auf basedir=D:\mysql-5.7.25-win32 fest.
# Legen Sie das Speicherverzeichnis für die MySQL-Datenbankdaten fest. MySQL 8+ erfordert die folgende Konfiguration nicht, das System kann sie selbst generieren, andernfalls wird möglicherweise ein Fehler gemeldet datadir=D:\mysql-5.7.25-win32\data3308
# Maximal zulässige Anzahl von Verbindungen max_connections=200
# Der vom Server verwendete Standardzeichensatz ist der 8-Bit-Latin1-Zeichensatz character-set-server=utf8mb4
# Die Standard-Speicher-Engine, die beim Erstellen einer neuen Tabelle verwendet wird default-storage-engine=INNODB
explizite_Vorgaben_für_Zeitstempel=true
log-error=D:\mysql-5.7.25-win32\mysql3308.err
pid-Datei=D:\mysql-5.7.25-win32\mysqld3308.pid
Socket =D:\mysql-5.7.25-win32\mysql3308.sock

Registrieren Sie den Dienst unter Verwendung des vollständigen Dienstpfadnamens, um sicherzustellen, dass Windows für jeden Dienst die richtige ausführbare Datei registriert:

D:\mysql-5.7.25-win32\bin>mysqld --install mysqld1
Dienst erfolgreich installiert.

D:\mysql-5.7.25-win32\bin>mysqld --install mysqld2
Dienst erfolgreich installiert.

Um den MySQL-Dienst zu starten, verwenden Sie den Service Manager oder „net start servicename“:

C:\Benutzer\Administrator>net start mysqld1

Der mysqld1-Dienst wird gestartet.

Der mysqld1-Dienst wurde erfolgreich gestartet.

C:\Benutzer\Administrator>net start mysqld2

Der mysqld2-Dienst wird gestartet.

Der mysqld2-Dienst wurde erfolgreich gestartet.

Um den MySQL-Dienst zu stoppen, verwenden Sie den Service Manager oder „net stop servicename“:

C:\Benutzer\Administrator>net stop mysqld1

Der mysqld1-Dienst wird beendet.

Der mysqld1-Dienst wurde erfolgreich gestoppt.

C:\Benutzer\Administrator>net stop mysqld2

Der mysqld2-Dienst wird beendet.

Der mysqld2-Dienst wurde erfolgreich gestoppt.

Löschen eines Dienstes

D:\mysql-5.7.25-win32\bin>mysqld --remove mysqld1
Dienst erfolgreich entfernt.

D:\mysql-5.7.25-win32\bin>mysqld --remove mysqld2
Dienst erfolgreich entfernt.

Methode 2

Verwenden Sie für jeden MySQL-Dienst eine separate Datei, um Optionen anzugeben, und verwenden Sie bei der Registrierung des Dienstes die Option --defaults-file, um jedem Server mitzuteilen, welche Optionsdatei verwendet werden soll. In diesem Fall verwendet jede Datei die Optionsgruppe [mysqld].

Der Inhalt der Datei my3307.cnf ist wie folgt:

[mysql]
# Setzen Sie den Standardzeichensatz des MySQL-Clients auf default-character-set=utf8mb4

[mysqld]
# Port 3307 einstellen port = 3307
# Legen Sie das Installationsverzeichnis von MySQL auf basedir=D:\mysql-5.7.25-win32 fest.
# Legen Sie das Speicherverzeichnis für die MySQL-Datenbankdaten fest. MySQL 8+ erfordert die folgende Konfiguration nicht, das System kann sie selbst generieren, andernfalls wird möglicherweise ein Fehler gemeldet datadir=D:\mysql-5.7.25-win32\data3307
# Maximal zulässige Anzahl von Verbindungen max_connections=200
# Der vom Server verwendete Standardzeichensatz ist der 8-Bit-Latin1-Zeichensatz character-set-server=utf8mb4
# Die Standard-Speicher-Engine, die beim Erstellen einer neuen Tabelle verwendet wird default-storage-engine=INNODB
explizite_Vorgaben_für_Zeitstempel=true
log-error=D:\mysql-5.7.25-win32\mysql3307.err
pid-Datei=D:\mysql-5.7.25-win32\mysqld3307.pid
Named Pipe aktivieren
Socket =D:\mysql-5.7.25-win32\mysql3307.sock

Der Inhalt der Datei my3308.cnf ist wie folgt:

[mysql]
# Setzen Sie den Standardzeichensatz des MySQL-Clients auf default-character-set=utf8mb4

[mysqld]
# Port 3308 einstellen port = 3308
# Legen Sie das Installationsverzeichnis von MySQL auf basedir=D:\mysql-5.7.25-win32 fest.
# Legen Sie das Speicherverzeichnis für die MySQL-Datenbankdaten fest. MySQL 8+ erfordert die folgende Konfiguration nicht, das System kann sie selbst generieren, andernfalls wird möglicherweise ein Fehler gemeldet datadir=D:\mysql-5.7.25-win32\data3308
# Maximal zulässige Anzahl von Verbindungen max_connections=200
# Der vom Server verwendete Standardzeichensatz ist der 8-Bit-Latin1-Zeichensatz character-set-server=utf8mb4
# Die Standard-Speicher-Engine, die beim Erstellen einer neuen Tabelle verwendet wird default-storage-engine=INNODB
explizite_Vorgaben_für_Zeitstempel=true
log-error=D:\mysql-5.7.25-win32\mysql3308.err
pid-Datei=D:\mysql-5.7.25-win32\mysqld3308.pid
Socket =D:\mysql-5.7.25-win32\mysql3308.sock

Registrieren Sie jede MySQL-Instanz als Windows-Dienst.

D:\mysql-5.7.25-win32\bin>mysqld --install mysqld1 --defaults-file=D:\mysql-5.7.25-win32\my3307.cnf
Dienst erfolgreich installiert.


D:\mysql-5.7.25-win32\bin>mysqld --install mysqld2 --defaults-file=D:\mysql-5.7.25-win32\my3308.cnf
Dienst erfolgreich installiert.

Starten des Dienstes

C:\Benutzer\Administrator>net start mysqld1

Der mysqld1-Dienst wird gestartet.

Der mysqld1-Dienst wurde erfolgreich gestartet.

C:\Benutzer\Administrator>net start mysqld2

Der mysqld2-Dienst wird gestartet.

Der mysqld2-Dienst wurde erfolgreich gestartet.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Bereitstellen der binären MySQL 5.7.17-Installation und der Multi-Instance-Konfiguration auf CentOS 6.5
  • MySQL-Lösung für die Konfiguration mehrerer Instanzen
  • Installieren mehrerer MySQL-Instanzen unter Linux als Datensicherungsserver, um eine Sicherung mehrerer Instanzen von einem Master auf einen Slave zu erreichen
  • Schnelle Implementierung der MySQL-Bereitstellung und der Bereitstellung mehrerer Instanzen auf einem Computer
  • Detaillierte Analyse basierend auf der MySQL-Multiinstanzinstallation
  • MySQL-Tutorial zum Bereitstellen mehrerer Instanzen auf einer einzigen Maschine mit mysqld_multi
  • Die Shell verwendet mysqld_multi, um automatisch Skripte für mehrere Instanzen von Slave-Bibliotheken zu erstellen.

<<:  Detaillierte grafische Erläuterung der Hadoop-Installation und -Konfiguration basierend auf Linux7

>>:  So verwenden Sie Axios, um Netzwerkanforderungen in React Native zu stellen

Artikel empfehlen

RHCE installiert Apache und greift mit einem Browser auf IP zu

1. at ist so konfiguriert, dass nach 5 Stunden „D...

Designtheorie: Die Grundlagen der Schriftgestaltung

<br />Worte sind das unvermeidliche Produkt ...

Beispielcode für Nginx zur Erreichung dynamischer und statischer Trennung

1. Einfache Konfiguration der dynamischen und sta...

So lassen Sie eine Remoteverbindung in MySql zu

So lassen Sie eine Remoteverbindung in MySql zu U...

Mybatis-Implementierungsmethode für Fuzzy-Abfragen

Mybatis-Implementierungsmethode für Fuzzy-Abfrage...

Detaillierte Erklärung der sieben Datentypen in JavaScript

Inhaltsverzeichnis Vorwort: Detaillierte Einführu...

Konvertieren Sie ausgeschnittene PSD-Bilder in das Div+CSS-Format

Beispiel für das Zuschneiden einer Webseite von P...

So ändern Sie die Längenbeschränkung von group_concat in MySQL

In MySQL gibt es eine Funktion namens „group_conc...

Detaillierte Erklärung der Docker-Einstiegspunktdatei

Schließen Sie beim Schreiben einer Docker-Datei e...