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

Lösung für das Problem von var in einer for-Schleife

Vorwort var ist eine Möglichkeit, Variablen in ES...

Standardmäßige Stilanordnung von HTML4.0-Elementen

Code kopieren Der Code lautet wie folgt: html, Ad...

Versprechenskapselung wx.request-Methode

Im vorherigen Artikel wurde die Implementierungsm...

Einige Hinweise zur Installation eines Fastdfs-Images im Docker

1. Bereiten Sie die Docker-Umgebung vor 2. Suchen...

Warum ist die Bildlaufleiste auf der Webseite rechts angebracht?

Warum befinden sich die Bildlaufleisten der Brows...

Detaillierte Erklärung der TMPF-Mounts im Docker-Datenspeicher

Bevor Sie diesen Artikel lesen, hoffe ich, dass S...