Einführung in die MySQL-Datenbank: Detaillierte Erläuterung der Konfigurationsmethode für mehrere Instanzen

Einführung in die MySQL-Datenbank: Detaillierte Erläuterung der Konfigurationsmethode für mehrere Instanzen

Dieser Artikel erklärt anhand von Beispielen die Konfiguration mehrerer Instanzen der MySQL-Datenbank. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

Die zugehörigen grundlegenden Befehlsoperationen werden oben vorgestellt: MySQL-Datenbankgrundlagen: Erste Schritte mit grundlegenden Befehlen

Alle Vorgänge basieren auf einer einzigen Instanz. Mehrere MySQL-Instanzen sind auch in tatsächlichen Produktionsumgebungen sehr praktisch, da sie beherrscht werden müssen.

1. Was ist Multi-Instance

Mehrere Instanzen bedeuten, dass auf einem Server mehrere verschiedene Service-Ports (der Standardwert ist 3306) geöffnet und mehrere MySQL-Serviceprozesse ausgeführt werden. Diese Serviceprozesse stellen ihre eigenen Dienste bereit, indem sie über verschiedene Sockets auf verschiedene Service-Ports hören. Alle Instanzen teilen sich einen Satz von MySQL-Installationsprogrammen, verwenden jedoch unterschiedliche Konfigurationsdateien, Startprogramme und Datendateien und sind logisch relativ unabhängig.

Die Hauptfunktion mehrerer Instanzen besteht darin, die vorhandenen Serverhardwareressourcen voll auszunutzen, um Datendienste für verschiedene Dienste bereitzustellen. Wenn jedoch die Parallelität einer Instanz relativ hoch ist, wirkt sich dies auch auf die Leistung anderer Instanzen aus.

2. Vorbereitung für die Installation mehrerer Instanzen

Sie müssen MySQL vor der Installation installieren, aber Sie müssen nur mit der Installation fortfahren (kompilieren und installieren). Wenn Sie das kostenlose Installationsprogramm verwenden, müssen Sie nur das Softwarepaket entpacken. In der heutigen Umgebung wird das MySQL-Hauptprogramm über das kostenlose Installationspaket installiert (andere Installationen können sich zum Selbsttest auf den vorherigen Installationsprozess beziehen).

Systemumgebung

[root@centos6 ~]# cat /etc/redhat-release 
CentOS-Version 6.5 (endgültig)
[root@centos6 ~]# uname -r
2.6.32-431.el6.x86_64

Installateur

mysql-5.5.52-linux2.6-x86_64.tar.gz

Laden Sie zunächst die Software auf Ihren lokalen Computer herunter

wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.52-linux2.6-x86_64.tar.gz

Erstellen eines Installationsbenutzers

[root@centos6 ~]#groupadd mysql
[root@centos6 ~]#useradd mysql -s /sbin/nologin -g mysql -M
[root@centos6 ~]#tail -1 /etc/passwd
mysql:x:500:500::/home/mysql:/sbin/nologin

Erstellen Sie ein Datenverzeichnis für mehrere Instanzen

[root@centos6-Tools]# mkdir -p /data/{3306,3307}
[root@centos6 tools]# Baum /Daten/
/Daten/
+-- 3306
+-- 3307
2 Verzeichnisse, 0 Dateien

3. Installieren Sie mehrere MySQL-Instanzen

Installieren Sie als Nächstes mehrere Instanzen von MySQL.

Dekomprimierungssoftware

[root@centos6-Tools]# ll mysql-5.5.52-linux2.6-x86_64.tar.gz 
-rw-r--r--. 1 root root 185855000 26. August 21:38 mysql-5.5.52-linux2.6-x86_64.tar.gz
[root@centos6-Tools]# tar zxf mysql-5.5.52-linux2.6-x86_64.tar.gz

Kopieren Sie die Konfigurationsdatei

[root@centos6 mysql-5.5.52-linux2.6-x86_64]# cp support-files/my-small.cnf /data/3306/my.cnf

[root@centos6 mysql-5.5.52-linux2.6-x86_64]# cp support-files/mysql.server /data/3306/mysql

[root@centos6 mysql-5.5.52-linux2.6-x86_64]# cp support-files/my-small.cnf /data/3307/my.cnf

[root@centos6 mysql-5.5.52-linux2.6-x86_64]# cp support-files/mysql.server /data/3307/mysql

Für einen Standardinstallationspfad kopieren Sie das kostenlose Installationspaket in das Anwendungsverzeichnis

[root@centos6-Tools]# mv mysql-5.5.52-linux2.6-x86_64 /Anwendung/mysql

[root@centos6-Tools]# ll /Anwendung/mysql
insgesamt 72
drwxr-xr-x. 2 root root 4096 9. Dez. 17:15 bin
-rw-r--r--. 1 7161 31415 17987 26. Aug. 19:24 KOPIEREN
drwxr-xr-x. 3 root root 4096 Dez 9 17:15 Daten
drwxr-xr-x. 2 root root 4096 9. Dez. 17:15 docs
drwxr-xr-x. 3 root root 4096 Dez 9 17:15 include
-rw-r--r--. 1 7161 31415 301 26. August 19:24 INSTALL-BINARY
drwxr-xr-x. 3 root root 4096 9. Dez. 17:15 lib
drwxr-xr-x. 4 root root 4096 Dez 9 17:15 Mann
drwxr-xr-x. 10 root root 4096 9. Dez. 17:15 mysql-test
-rw-r--r--. 1 7161 31415 2496 26. August 19:24 README
drwxr-xr-x. 2 root root 4096 Dez 9 17:15 Skripte
drwxr-xr-x. 27 root root 4096 Dez 9 17:15 teilen
drwxr-xr-x. 4 root root 4096 Dez 9 17:15 sql-bench
drwxr-xr-x. 2 root root 4096 Dez 9 17:15 Support-Dateien

Ändern der Konfigurationsdatei und der Startdatei

Da es sich um eine Multi-Instanz handelt, müssen die Parameter angepasst werden. Die angepasste Konfigurationsdatei lautet: Konfigurationsdatei my.cnf

[Kunde]
Port = 3307
Socket = /data/3307/mysql.sock

[mysql]
kein automatisches Wiederaufwärmen

[mysqld] Benutzer = mysql
Port = 3307
Socket = /data/3307/mysql.sock
basedir = /anwendung/mysql
Datenverzeichnis = /Daten/3307/Daten
#log_long_format
#log-error = /data/3307/error.log
#log-slow-queries = /data/3307/slow.log
pid-Datei = /data/3307/mysql.pid
Server-ID = 3 

[mysqld_safe]
log-error=/data/3307/mysql3307.err
pid-Datei=/data/3307/mysqld.pid

Starten Sie die Programmdatei mysql

[root@backup 3307]# cat mysql
#!/bin/sh
Initialisierungs-Port = 3307
mysql_user="Stamm"
mysql_pwd="migongge"
CmdPath="/anwendung/mysql/bin"
mysql_sock="/data/${port}/mysql.sock"
#Start-up
Funktion_start_mysql() {
wenn [ ! -e "$mysql_sock" ];dann
 printf "MySQL wird gestartet...\n"
/bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 > /dev/null &
anders
 printf "MySQL läuft...\n"
Ausfahrt
fi
}
#Stop-Funktion
Funktion_stop_mysql() {
wenn [ ! -e "$mysql_sock" ];dann
printf "MySQL wurde gestoppt...\n"
Ausfahrt
anders
printf "MySQL wird gestoppt...\n"
${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock herunterfahren
fi
}
#restart-Funktion
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: /data/${port}/mysql {start|stop|restart}\n"
esac

Für andere Konfigurationen siehe bitte die Konfigurationsdatei zur Änderung.

Initialisierungsvorgänge für mehrere Instanzen

[root@centos6 3306]# /Anwendung/mysql/scripts/mysql_install_db --basedir=/Anwendung/mysql --datadir=/data/3306/data --user=mysql
MySQL-Systemtabellen werden installiert …
161209 18:02:17 [Warnung] „THREAD_CONCURRENCY“ ist veraltet und wird in einer zukünftigen Version entfernt.
161209 18:02:17 [Hinweis] /application/mysql/bin/mysqld (mysqld 5.5.52-log) als Prozess 3336 gestartet ...
OK
Hilfetabellen werden ausgefüllt...
161209 18:02:17 [Warnung] „THREAD_CONCURRENCY“ ist veraltet und wird in einer zukünftigen Version entfernt.
161209 18:02:17 [Hinweis] /application/mysql/bin/mysqld (mysqld 5.5.52-log) als Prozess 3343 gestartet ...
OK
Um mysqld beim Booten zu starten, müssen Sie kopieren
support-files/mysql.server an den richtigen Ort für Ihr System
Denken Sie bitte daran, ein Passwort für den MySQL-Root-Benutzer festzulegen!
Starten Sie dazu den Server und geben Sie dann die folgenden Befehle ein:
/application/mysql/bin/mysqladmin -u root-Passwort „neues Passwort“
/application/mysql/bin/mysqladmin -u root -h centos6 password 'neues-Passwort'
Alternativ können Sie Folgendes ausführen:
/anwendung/mysql/bin/mysql_sichere_installation
Sie haben außerdem die Möglichkeit, den Test zu entfernen
Datenbanken und anonyme Benutzer werden standardmäßig erstellt. Dies ist
Es wird dringend für Produktionsserver empfohlen.
Weitere Anweisungen finden Sie im Handbuch.
Sie können den MySQL-Daemon wie folgt starten:
cd /anwendung/mysql ; /anwendung/mysql/bin/mysqld_safe &
Sie können den MySQL-Daemon mit mysql-test-run.pl testen.
cd /application/mysql/mysql-test ; perl mysql-test-run.pl
Bitte melden Sie etwaige Probleme unter http://bugs.mysql.com/

Nach erfolgreicher Initialisierung werden ein Datenverzeichnis und einige Dateien im Datenverzeichnis generiert

[root@centos6 3306]# ll /data/3306/data/
insgesamt 1136
drwx------. 2 mysql root 4096 9. Dez. 18:02 mysql
-rw-rw----. 1 mysql mysql 27693 9. Dez. 18:02 mysql-bin.000001
-rw-rw----. 1 mysql mysql 1114546 9. Dez. 18:02 mysql-bin.000002
-rw-rw----. 1 mysql mysql 38 9. Dez. 18:02 mysql-bin.index
drwx------. 2 mysql mysql 4096 9. Dez. 18:02 performance_schema
drwx------. 2 mysql root 4096 9. Dez. 18:02 Test

Bitte beziehen Sie sich auf den obigen Vorgang, um eine weitere Instanz zu initialisieren. Der Vorgang wird nicht einzeln eingeführt.

[root@centos6 3307]# ll /data/3307/data/
insgesamt 1136
drwx------. 2 mysql root 4096 9. Dez 18:40 mysql
-rw-rw----. 1 mysql mysql 27693 9. Dez. 18:40 mysql-bin.000001
-rw-rw----. 1 mysql mysql 1114546 9. Dez. 18:40 mysql-bin.000002
-rw-rw----. 1 mysql mysql 38 9. Dez. 18:40 mysql-bin.index
drwx------. 2 mysql mysql 4096 9. Dez. 18:40 performance_schema
drwx------. 2 mysql root 4096 9. Dez. 18:40 Test

4. Mehrere Instanzen starten und anmelden

Starten des Dienstes

[root@backup 3307]# /data/3306/mysql start
MySQL wird gestartet ...
[root@backup 3307]# lsof -i :3306
BEFEHL PID BENUTZER FD TYP GERÄTEGRÖSSE/AUS KNOTENNAME
mysqld 19986 mysql 10u IPv4 90967 0t0 TCP *:mysql (HÖREN)
[root@backup 3307]# /data/3307/mysql
Beginnen Sie mit dem Starten von MySQL …
[root@backup 3307]# lsof -i :3307
BEFEHL PID BENUTZER FD TYP GERÄTEGRÖSSE/AUS KNOTENNAME
mysqld 21648 mysql 11u IPv4 92899 0t0 TCP *:opsession-prxy (HÖREN)

Überprüfen Sie den Port

[root@backup 3307]# netstat -lntup|grep mysql
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 21648/mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 19986/mysqld

Anmelden bei einer Multi-Instance-Datenbank

[root@backup ~]# mysql -S /data/3306/mysql.sock
Willkommen beim MySQL-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MySQL-Verbindungs-ID ist 1
Serverversion: 5.5.51-log Quellverteilung
Copyright (c) 2000, 2016, 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 sein.
Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.
mysql> Datenbank data3306 erstellen;
Abfrage OK, 1 Zeile betroffen (0,00 Sek.)
mysql> Datenbanken anzeigen;
+--------------------+
| Datenbank |
+--------------------+
| Informationsschema |
|Daten3306|
|mysql |
| Leistungsschema |
| Prüfung |
+--------------------+
5 Zeilen im Satz (0,00 Sek.)
mysql> beenden
Tschüss

[root@backup ~]# mysql -S /data/3307/mysql.sock
Willkommen beim MySQL-Monitor.
Befehle enden mit ; ​​oder \g.
Ihre MySQL-Verbindungs-ID ist 1
Serverversion: 5.5.51 Quellverteilung
Copyright (c) 2000, 2016, 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 sein.
Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.
mysql> Datenbanken anzeigen;
+--------------------+
| Datenbank |
+--------------------+
| Informationsschema |
|mysql |
| Leistungsschema |
| Prüfung |
+--------------------+
4 Reihen im Satz (0,05 Sek.)

Die Anmeldung war erfolgreich und in der Instanz 3306 wurde eine Datenbank erstellt. In der Instanz 3307 wurden jedoch keine Daten erstellt. Dies deutet darauf hin, dass die beiden Instanzen unabhängig sind.

Hinweis: Wenn Sie eine weitere Instanz hinzufügen müssen, sind die grundlegenden Konfigurationsschritte dieselben wie oben. Sie müssen nur die Portnummer und den Datenverzeichnispfad in der Konfigurationsdatei und der Startprogrammdatei entsprechend ändern. Schließlich können Sie den Startbefehl für die Datenbank mehrerer Instanzen zum automatischen Start hinzufügen.

Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „Zusammenfassung der allgemeinen MySQL-Funktionen“, „MySQL-Protokolloperationskenntnisse“, „Zusammenfassung der MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“ und „Zusammenfassung der MySQL-Datenbanksperrenkenntnisse“.

Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist.

Das könnte Sie auch interessieren:
  • Detaillierte Analyse basierend auf der MySQL-Multiinstanzinstallation
  • MySQL-Lösung für die Konfiguration mehrerer Instanzen
  • MySQL-Tutorial zum Bereitstellen mehrerer Instanzen auf einer einzigen Maschine mit mysqld_multi
  • MySQL-Installation mehrerer Instanzen - Boot- und Autostart-Dienstkonfigurationsprozess

<<:  Zusammenfassung der 10 gängigen HBase-Betriebs- und Wartungstools

>>:  Verständnis und Anwendungsszenarien von Enumerationstypen in TypeScript

Artikel empfehlen

MySQL-Abfrageoptimierung mit benutzerdefinierten Variablen

Inhaltsverzeichnis Optimieren von Sortierabfragen...

jQuery manipuliert Cookies

Code kopieren Der Code lautet wie folgt: jQuery.c...

Tutorial zur Installation von MYSQL5.7 aus dem OEL7.6-Quellcode

Laden Sie zunächst das Installationspaket von der...

JavaScript-Dokumentobjektmodell DOM

Inhaltsverzeichnis 1. JavaScript kann alle HTML-E...

Der Einsatz von MySQL Triggern und worauf zu achten ist

Inhaltsverzeichnis Über Trigger Verwendung von Tr...

HTML-Grundlagen: HTML-Inhaltsdetails

Beginnen wir mit dem Körper: Wenn Sie eine Webseit...

Detaillierte Erklärung des Linux-Netstat-Befehls

Inhaltsverzeichnis Linux-Netstat-Befehl 1. Detail...

Detaillierte Erläuterung des MySQL InnoDB-Sekundärindex-Sortierbeispiels

Sortierproblem Ich habe kürzlich auf Geek Time „4...

Konfigurieren Sie nginx so, dass es zur Systemwartungsseite umleitet

Letztes Wochenende bereitete sich ein Bruderproje...

Eine kurze Diskussion über die Anpassung mobiler Endgeräte

Vorwort Beim Schreiben von Front-End-Code kommt m...

MYSQL Eine Frage zur Verwendung von Zeichenfunktionen zum Filtern von Daten

Problembeschreibung: Struktur: test hat zwei Feld...