MySQL-Lösung für die Konfiguration mehrerer Instanzen

MySQL-Lösung für die Konfiguration mehrerer Instanzen

1.1 Was ist MySQL Multi-Instance?

Einfach ausgedrückt bedeutet MySQL Multi-Instance, dass auf einem Server gleichzeitig mehrere verschiedene Service-Ports (z. B. 3306/3307/3308) geöffnet werden und mehrere MySQL-Server gleichzeitig ausgeführt werden. Diese Serviceprozesse überwachen verschiedene Service-Ports über verschiedene Sockets, um Dienste bereitzustellen.

Diese MySQL-Instanzen teilen sich einen Satz von MySQL-Installationsprogrammen und verwenden unterschiedliche my.cnf-Konfigurationsdateien, Startprogramme und Datendateien. Bei der Bereitstellung von Diensten sind die mehreren MySQL-Instanzen logisch unabhängig voneinander. Sie erhalten die entsprechenden Ressourcen des Servers gemäß den entsprechenden Einstellungen in den Konfigurationsdateien.

1.2 Ideen für die Konfiguration mehrerer Instanzen:

1. Mehrere unabhängige Verzeichnisse
2. Jede Instanz hat unabhängige Daten (Initialisierungsdaten)
3. Mehrere Ports
4. Mehrfachsteckdosen
5. Mehrere Startprogramme
6. Mehrere Protokolldateien

1.3 Konfigurationsprozess für mehrere Instanzen:

1.3.1 Ein separates Verzeichnis erstellen:

mkdir -p /data/{3307,3308}
chown –R mysql.mysql /data

1.3.2 Schreiben Sie die Konfigurationsdatei für jede Instanz:

[root@db01 ~]# cat /data/3307/my.cnf
[mysqld]
basedir=/Anwendung/MySQL
Datenverzeichnis=/Daten/3307
socket=/data/3307/mysql.sock
log-error=/data/3307/mysql.log
log_bin=/data/3307/mysql-bin
binlog_format=Zeile
skip_name_resolve=1
server_id=3307
Port = 3307

1.3.3 Initialisierungsdaten:

./mysql_install_db --defaults-file=/data/3307/my.cnf --basedir=/application/mysql --datadir=/data/3307 --user=mysql

1.3.4 Starten Sie die Instanz:

sh mysqld_safe --defaults-file=/data/3307/my.cnf --pid-file=/data/3307/3307.pid &

Shell-Skript zum Verwalten von Diensten mit mehreren Instanzen:

#!/bin/bash
 
. /etc/init.d/Funktionen
./etc/Profil
 
Start='/application/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf --pid-file=/data/3307/3307.pid'
Stopp='mysqladmin -uroot -S /data/3307/mysql.sock shutdown'
Port=`ss -tunlp|grep 3307|wc -l`
 
Funktion START(){
 wenn [ $Port -ne 1 ];dann
  $Start >/dev/null 2>&1 &
  Schlaf 3
  wenn [ $? -eq 0 ];dann
   Aktion 'MySQL 3307 wird gestartet' /bin/true
  fi
 anders
  Aktion 'MySQL 3307 ist bereits vorhanden' /bin/true
 fi
}
Funktion STOP(){
 wenn [ $Port -ne 0 ];dann
  $Stop
  wenn [ $? -eq 0 ];dann
   Aktion 'MySQL erfolgreich beendet' /bin/true
  fi
 anders
  Aktion 'MySQL bereits gestoppt' /bin/true
 fi
}
Funktion NEUSTART(){
 STOPPEN
 Schlaf 1
 START
}
Fall $1 in
Start)
 START
 ;;
stoppen)
 STOPPEN
 ;;
Neustart)
 NEUSTART
 ;;
*)
 echo "Verwendung: $0 {start|stop|restart}"
 ;;
esac

Das könnte Sie auch interessieren:
  • Detaillierte Analyse basierend auf der MySQL-Multiinstanzinstallation
  • Einführung in die MySQL-Datenbank: Detaillierte Erläuterung der Konfigurationsmethode für mehrere Instanzen
  • MySQL-Tutorial zum Bereitstellen mehrerer Instanzen auf einer einzigen Maschine mit mysqld_multi
  • MySQL-Installation mehrerer Instanzen - Boot- und Autostart-Dienstkonfigurationsprozess

<<:  So fügen Sie der Seite über Element UI eine Seitennavigationsleiste hinzu

>>:  Detailliertes Tutorial zur Installation von Protobuf 3 unter Ubuntu

Artikel empfehlen

HTML-Tutorial: Horizontales Liniensegment in HTML

<br />Dieses Tag kann eine horizontale Linie...

Über das Problem beim Schreiben von Plugins zum Mounten von DOM in vue3

Im Vergleich zu vue2 verfügt vue3 über ein zusätz...

Zusammenfassung der JavaScript-Timertypen

Inhaltsverzeichnis 1.setInterval() 2.setTimeout()...

Detaillierte Analyse des React Native-Startvorgangs

Einführung: Dieser Artikel verwendet das von reac...

Implementierung der Docker-Batch-Container-Orchestrierung

Einführung Der Dockerfile-Build-Ausführungsvorgan...

HTML-Code zum Hinzufügen von Symbolen zum transparenten Eingabefeld

Ich habe vor Kurzem eine Website mit Anwaltsempfe...

SMS-Bestätigungscode-Anmeldefunktion basierend auf Antd Pro (Prozessanalyse)

Inhaltsverzeichnis Zusammenfassung Gesamtprozess ...

Eingabetyp begrenzen (mehrere Methoden)

1. Es können nur chinesische Schriftzeichen eingeg...

Docker generiert Bilder über Container und übermittelt DockerCommit im Detail

Inhaltsverzeichnis Nachdem Sie einen Container lo...

Die Bilder in HTML werden direkt durch base64-kodierte Strings ersetzt

Kürzlich stieß ich auf eine Webseite, die zwar Bil...