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-InstanceMehrere 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 InstanzenSie 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-InstanzenInstallieren 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 anmeldenStarten 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.
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:
|
<<: Zusammenfassung der 10 gängigen HBase-Betriebs- und Wartungstools
>>: Verständnis und Anwendungsszenarien von Enumerationstypen in TypeScript
Detaillierte Erläuterung der Reihenfolge der MySQ...
Inhaltsverzeichnis Optimieren von Sortierabfragen...
1. Erstellen Sie den Tomcat-Installationspfad mkd...
Code kopieren Der Code lautet wie folgt: jQuery.c...
Laden Sie zunächst das Installationspaket von der...
Vorwort: Beim Entwerfen einer Tabelle in MySQL em...
Inhaltsverzeichnis 1. JavaScript kann alle HTML-E...
Inhaltsverzeichnis Über Trigger Verwendung von Tr...
Wenn der Tabellenkopf fixiert ist, muss er in zwe...
Beginnen wir mit dem Körper: Wenn Sie eine Webseit...
Inhaltsverzeichnis Linux-Netstat-Befehl 1. Detail...
Sortierproblem Ich habe kürzlich auf Geek Time „4...
Letztes Wochenende bereitete sich ein Bruderproje...
Vorwort Beim Schreiben von Front-End-Code kommt m...
Problembeschreibung: Struktur: test hat zwei Feld...