MySQL Series II-Konfiguration für mehrere Instanzen

MySQL Series II-Konfiguration für mehrere Instanzen

Tutorial-Reihe

MySQL-Reihe: Grundlegende Konzepte der relationalen MySQL-Datenbank
MariaDB-Serverinstallation der MySQL-Reihe
MySQL Serie 3 Grundlagen
MySQL Serie 4 SQL-Syntax
MySQL-Serie fünf Ansichten, gespeicherte Funktionen, gespeicherte Prozeduren, Trigger
MySQL Series 6-Benutzer und Autorisierung
MySQL Series 7 MySQL-Speicher-Engine
MySQL Serie 8 MySQL Server-Variablen
MySQL-Serie 9 MySQL-Abfrage-Cache und -Index
MySQL Series 10 MySQL-Transaktionsisolierung zur Implementierung der Parallelitätskontrolle
MySQL Series 11-Protokollierung
MySQL Serie 12 Backup und Wiederherstellung
MySQL Serie 13 MySQL-Replikation
MySQL Serie 14 MySQL Hochverfügbarkeitsimplementierung
MySQL-Serie 15: Allgemeine MySQL-Konfiguration und Leistungsstresstest

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) geöffnet werden und mehrere MySQL-Serviceprozesse gleichzeitig ausgeführt werden. Diese Serviceprozesse stellen Dienste über verschiedene Sockets bereit, die auf verschiedenen Service-Ports lauschen.

Diese mehreren MySQL-Instanzen teilen sich einen Satz von MySQL-Installationsprogrammen und verwenden unterschiedliche my.cnf-Konfigurationsdateien (kann auch identisch sein), Startprogramme (können auch identisch sein) und Datendateien. Bei der Bereitstellung der Dienste scheinen mehrere MySQL-Instanzen logisch unabhängig voneinander zu sein und erhalten basierend auf den entsprechenden Einstellungen in der Konfigurationsdatei die entsprechende Menge an Hardwareressourcen vom Server.

Um ein Beispiel zu geben: Mehrere MySQL-Instanzen entsprechen mehreren Schlafzimmern in einem Haus. Jede Instanz kann als Schlafzimmer betrachtet werden, und der gesamte Server ist ein Haus. Die Hardwareressourcen (CPU, Männer, Festplatte) und Softwareressourcen (CentOS-Betriebssystem) des Servers können als Badezimmer, Küche und Wohnzimmer des Hauses betrachtet werden, die die gemeinsam genutzten Ressourcen des Hauses sind. Wenn Sie ein Wanderarbeiter in Peking sind und mit Freunden ein Haus mieten, werden Sie es meiner Meinung nach besser verstehen. Sie leben alle zusammen, ruhen sich in Ihrem eigenen Schlafzimmer aus und wenn Sie ausgehen, teilen Sie auf jeden Fall die oben genannten öffentlichen Mittel. Dadurch erhalten Sie ein gutes Verständnis mehrerer MySQL-Instanzen.

Tatsächlich können viele Netzwerkdienste mit mehreren Instanzen konfiguriert werden, z. B. nginx, Apache, haproxy, redis usw. Dies wird häufig auf Portal-Websites verwendet.

Wenn mehrere Testumgebungen auf einer physischen Maschine benötigt werden, müssen mehrere Instanzen der Datenbank erstellt werden. Mehrere Instanzen bedeuten, dass mehrere Programme ausgeführt werden und es zwischen den Instanzen keine gegenseitigen Auswirkungen gibt. Beachten Sie, dass der Abhörport unterschiedlich sein muss.

Umgebung: CentOS7.5, kompilieren und installieren Sie die Version MariaDB-10.2.15, Softwareinstallationsverzeichnis: /app/mysql/

1) Erstellen Sie eine laufende Verzeichnisumgebung

[root@centos7 ~]# mkdir -p /mysqldb/{3306,3307,3308}/{etc,socket,pid,log,data,bin}
[root@centos7 ~]# chown -R mysql:mysql /mysqldb/

2) Initialisieren Sie die Datenbank

[root@centos7 ~]# cd /app/mysql/
[root@centos7 mysql]# scripts/mysql_install_db --datadir=/mysqldb/3306/data/ --user=mysql --basedir=/app/mysql/ 
[root@centos7 mysql]# scripts/mysql_install_db --datadir=/mysqldb/3307/data/ --user=mysql --basedir=/app/mysql/
[root@centos7 mysql]# scripts/mysql_install_db --datadir=/mysqldb/3308/data/ --user=mysql --basedir=/app/mysql/

Das Obige wird kompiliert und installiert. Das Installationsverzeichnis ist /app/mysql/. Sie müssen das Softwareinstallationsverzeichnis aufrufen und das Initialisierungsskript ausführen. Wenn es sich um ein von yum installiertes Paket handelt, führen Sie einfach den Befehl mysql_install_db direkt aus.

3) Stellen Sie die Konfigurationsdatei bereit und ändern Sie sie nach Bedarf

[root@centos7 mysql]# cp support-files/my-huge.cnf /mysqldb/3306/etc/my.cnf
[root@centos7 mysql]# cp support-files/my-huge.cnf /mysqldb/3307/etc/my.cnf
[root@centos7 mysql]# cp support-files/my-huge.cnf /mysqldb/3308/etc/my.cnf
[root@centos7 mysqldb]# cd /mysqldb/
[root@centos7 mysqldb]# vim 3306/etc/my.cnf
[mysqld]
Port = 3306
Datenverzeichnis = /mysqldb/3306/data
Socket = /mysqldb/3306/socket/mysql.sock
[root@centos7 mysqldb]# vim 3307/etc/my.cnf #Änderung entsprechend dem obigen Konfigurationsbeispiel [root@centos7 mysqldb]# vim 3308/etc/my.cnf

4) Stellen Sie ein Dienststartskript bereit

[root@centos7 ~]# cat mysqld #Skriptbeispiel#!/bin/bash

port=3306 #muss in die Portnummer der aktuellen Instanz geändert werdenmysql_user="root"
mysql_pwd=""
cmd_path="/app/mysql/bin" #bin im Installationsverzeichnis
mysql_basedir="/mysqldb" #Das Verzeichnis, in dem sich die Instanzdatenbankdatei befindetmysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"

function_start_mysql()
{
    wenn [ ! -e "$mysql_sock" ];dann
      printf "MySQL wird gestartet...\n"
      ${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf &> /dev/null &
    anders
      printf "MySQL läuft...\n"
      Ausfahrt
    fi
}


Funktion_stop_mysql()
{
    wenn [ ! -e "$mysql_sock" ];dann
       printf "MySQL wurde gestoppt...\n"
       Ausfahrt
    anders
       printf "MySQL wird gestoppt...\n"
       ${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} Herunterfahren
   fi
}


function_restart_mysql()
{
    printf "MySQL wird neu gestartet...\n"
    Funktion_Stoppen_MySQL
    Schlaf 2
    Funktion_start_mysql
}

Fall $1 in
Start)
    Funktion_start_mysql
;;
stoppen)
    Funktion_Stoppen_MySQL
;;
Neustart)
    Funktion_Neustart_MySQL
;;
*)
    printf "Verwendung: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"
esac
[root@centos7 ~]# cp mysqld /mysqldb/3306/bin/
[root@centos7 ~]# cp mysqld /mysqldb/3307/bin/
[root@centos7 ~]# cp mysqld /mysqldb/3308/bin/
[root@centos7 ~]# vim /mysqldb/3306/bin/mysqld
Port = 3306
[root@centos7 ~]# vim /mysqldb/3307/bin/mysqld
Port = 3307
[root@centos7 ~]# vim /mysqldb/3308/bin/mysqld
Port = 3308

5) Ändern Sie die Berechtigungen der Skriptdatei, um zu verhindern, dass das Passwort von anderen gesehen wird

[root@centos7 ~]# chmod 700 /mysqldb/3306/bin/mysqld 
[root@centos7 ~]# chmod 700 /mysqldb/3307/bin/mysqld  
[root@centos7 ~]# chmod 700 /mysqldb/3308/bin/mysqld 

6) Starten Sie den Dienst

[root@centos7 ~]# service mysqld stop #Stellen Sie sicher, dass der ursprüngliche Dienst gestoppt wird und geben Sie Port 3306 frei [root@centos7 ~]# /mysqldb/3306/bin/mysqld start #Starten Sie den Dienst [root@centos7 ~]# /mysqldb/3307/bin/mysqld start
[root@centos7 ~]# /mysqldb/3308/bin/mysqld start
[root@centos7 ~]# ss -tnl #Wenn Sie sehen, dass die von den drei Instanzen abgehörten Ports alle geöffnet sind, bedeutet dies, dass der Dienst normal gestartet wird. LISTEN 0 80 :::3306 :::*
HÖREN 0 80 :::3307 :::*
HÖREN 0 80 :::3308 :::*

7) Verbindungstest

[root@centos7 ~]# mysql -S /mysqldb/3306/socket/mysql.sock #Verwenden Sie -S, um die Socket-Datei anzugeben Serverversion: 10.2.15-MariaDB-log Quellverteilung
MariaDB [(keine)]> Variablen wie '%port' anzeigen; #Überprüfen Sie, ob der Port 3306 ist
+---------------------+--------+
| Variablenname | Wert |
+---------------------+--------+
| extra_port | 0 |
| Unterstützung für große Dateien | EIN |
| Hafen | 3306 |
| Berichtsport | 3306 |
+---------------------+--------+
4 Zeilen im Satz (0,00 Sek.)

[root@centos7 ~]# mysql -S /mysqldb/3307/socket/mysql.sock #3307 und 3308 erneut verbinden und testen
Serverversion: 10.2.15-MariaDB-log Quellverteilung
MariaDB [(keine)]> Variablen wie „%port“ anzeigen;
+---------------------+--------+
| Variablenname | Wert |
+---------------------+--------+
| extra_port | 0 |
| Unterstützung für große Dateien | EIN |
| Hafen | 3307 |
| Berichtsport | 3307 |
+---------------------+--------+
4 Zeilen im Satz (0,00 Sek.)

[root@centos7 ~]# mysql -S /mysqldb/3308/socket/mysql.sock
Serverversion: 10.2.15-MariaDB-log Quellverteilung
MariaDB [(keine)]> Variablen wie „%port“ anzeigen;
+---------------------+--------+
| Variablenname | Wert |
+---------------------+--------+
| extra_port | 0 |
| Unterstützung für große Dateien | EIN |
| Hafen | 3308 |
| Berichtsport | 3308 |
+---------------------+--------+
4 Zeilen im Satz (0,00 Sek.)

Mehrere Instanzen wurden erfolgreich erstellt!

8) Verwenden Sie diesen Befehl, um die Instanz zu stoppen

[root@centos7 ~]# /mysqldb/3306/bin/mysqld stop

9) Der letzte Schritt: Fügen Sie ein Passwort für den Root-Benutzer hinzu ~

[root@centos7 ~]# mysql -S /mysqldb/3307/socket/mysql.sock 
Serverversion: 10.2.15-MariaDB-log Quellverteilung

MariaDB [(keine)]> mysql.user aktualisieren, Passwort=PASSWORT("Ihr_Passwort") festlegen, wobei Benutzer='root';
Abfrage OK, 4 Zeilen betroffen (0,00 Sek.)
MariaDB [(keine)]> Berechtigungen leeren;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)
MariaDB [(keine)]> wähle Benutzer, Host, Passwort aus mysql.user;
+------+-----------+-------------------------------------------+
| Benutzer | Host | Passwort |
+------+-----------+-------------------------------------------+
| root | lokaler Host | *9E72259BA9214F692A85B240647C4D95B0F2E08B |
| root | centos7 | *9E72259BA9214F692A85B240647C4D95B0F2E08B |
| root | 127.0.0.1 | *9E72259BA9214F692A85B240647C4D95B0F2E08B |
| Wurzel | ::1 | *9E72259BA9214F692A85B240647C4D95B0F2E08B |
| | lokaler Host | |
| | centos7 | |
+------+-----------+-------------------------------------------+
6 Zeilen im Satz (0,00 Sek.)

[root@centos7 ~]# mysql -S /mysqldb/3307/socket/mysql.sock -uroot -p'Ihr_Passwort' #Geben Sie das Passwort an und melden Sie sich erneut an OK~

Fügen Sie abschließend Ihr Passwort zur bin/mysqld-Skriptdatei hinzu, um zu verhindern, dass der Dienst nicht gestartet werden kann.

Dies ist das Ende dieses Artikels über die Konfiguration mehrerer MySQL-Instanzen der Serie 2. Weitere Informationen zur Konfiguration mehrerer MySQL-Instanzen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Einführung in die MySQL-Datenbank: Detaillierte Erläuterung der Konfigurationsmethode für mehrere Instanzen
  • MySQL-Lösung für die Konfiguration mehrerer Instanzen
  • MySQL-Tutorial zum Bereitstellen mehrerer Instanzen auf einer einzigen Maschine mit mysqld_multi
  • Schnelle Implementierung der MySQL-Bereitstellung und der Bereitstellung mehrerer Instanzen auf einem Computer
  • Detaillierte Analyse basierend auf der MySQL-Multiinstanzinstallation

<<:  Detaillierte Erklärung der 4 Codes, die die Website schwarz, weiß und grau machen

>>:  So geben Sie Flash-Seiten über Überprüfungsmethoden in Website-Standards frei

Artikel empfehlen

Detaillierte Erläuterung der Verwendung des Linux-Zeitbefehls

1. Befehlseinführung Mit „time“ werden die für di...

Design-Tipps: Wir glauben, es wird Ihnen gefallen

<br />Wenn Sie sich diesen Titel ansehen, ko...

Einführung in gängige XHTML-Tags

<br />Ich habe festgestellt, dass viele Leut...

Ein Artikel, der Ihnen zeigt, wie Sie Vue-Komponenten erstellen und verwenden

Inhaltsverzeichnis 1. Was ist eine Komponente? 2....

JavaScript zum Erzielen eines einfachen Lupeneffekts

In einem großen Kästchen befindet sich ein Bild. ...

Projektpraxis zum Bereitstellen von Docker-Containern mit Portainer

Inhaltsverzeichnis 1. Hintergrund 2. Bedienungssc...

Implementierung der MVCC-Mehrversions-Parallelitätskontrolle von MySQL

1 Was ist MVCC Der vollständige Name von MVCC lau...

Tkinter verwendet JS-Canvas, um Farbverlaufsfarben zu erzielen

Inhaltsverzeichnis 1. Verwenden Sie RGB zur Darst...

MySQL Router implementiert MySQL Lese-/Schreibtrennung

Inhaltsverzeichnis 1. Einleitung 2. MySQL-Router ...

Detaillierte Erklärung zur Verwendung der Vue-Nummernschild-Eingabekomponente

Eine einfache Nummernschild-Eingabekomponente (vu...

HTML-Formular-Tag-Tutorial (5): Textfeld-Tag

<br />Mit diesem Tag können Sie ein mehrzeil...