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

Wann sollte man Map anstelle einfacher JS-Objekte verwenden?

Inhaltsverzeichnis 1. Map akzeptiert jeden Schlüs...

So zeigen Sie die MySQL-Zeitzone an und legen sie fest

1. Überprüfen Sie die Zeitzone der Datenbank Vari...

Detaillierte Erklärung zum Erstellen geplanter MySql-Aufgaben in Navicat

Detaillierte Erklärung zum Erstellen geplanter My...

So schreiben Sie HTML-Header in der Webentwicklung für mobile Geräte

Code kopieren Der Code lautet wie folgt: <Kopf...

Warum wird UTF-8 in MySQL nicht empfohlen?

Ich bin kürzlich auf einen Fehler gestoßen, als i...

Vergleich zweier Implementierungsmethoden der Vue-Dropdown-Liste

Zwei Implementierungen der Vue-Dropdown-Liste Die...

Methode zum Erstellen eines Redis-Clusters basierend auf Docker

Laden Sie das Redis-Image herunter Docker-Pull yy...

JavaScript-Tippspiel

In diesem Artikel wird der spezifische JavaScript...

Auszeichnungssprache – CSS-Stil für Webanwendungen

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

So verwenden Sie CSS-Attributselektoren zum Spleißen von HTML-DNA

CSS-Attributselektoren sind großartig. Sie können...