MySQL Cluster ist eine äußerst praktische, skalierbare, leistungsstarke und hochredundante Version von MySQL, die für verteilte Computerumgebungen geeignet ist Forschung und Entwicklung Die ursprüngliche Absicht des Designs besteht darin, die strengsten Anwendungsanforderungen in vielen Branchen zu erfüllen. Diese Anwendungen erfordern häufig eine Zuverlässigkeit des Datenbankbetriebs von 99,999 %. MySQL Cluster ermöglicht die Bereitstellung von „In-Memory“-Datenbankclustern in Shared-Nothing-Systemen. Durch die Shared-Nothing-Architektur kann das System kostengünstige Hardware verwenden und stellt keine besonderen Anforderungen an Software und Hardware. Da außerdem jede Komponente über einen eigenen Speicher und eine eigene Festplatte verfügt, gibt es keinen Single Point of Failure.
Tatsächlich integriert MySQL Cluster eine Speicher-Cluster-Speicher-Engine namens NDB in den Standard-MySQL-Server. Es besteht aus einer Reihe von Computern, auf denen jeweils ein oder mehrere Prozesse ausgeführt werden, zu denen ein MySQL-Server, ein Datenknoten, ein Verwaltungsserver und ein proprietäres Datenzugriffsprogramm gehören können.
MySQL-Cluster bietet die Möglichkeit, die NDB-Speicher-Engine mit einer Vielzahl von Failover- und Lastausgleichsoptionen zu konfigurieren. Am einfachsten ist dies jedoch auf der Speicher-Engine auf Cluster-Ebene. Das Folgende ist das MySQL-Clusterstrukturdiagramm:
MySQL besteht aus struktureller Sicht aus drei Arten von Knoten (Computern oder Prozessen). , nämlich:
Verwaltungsknoten: Wird verwendet, um Konfigurations-, Verwaltungs-, Vermittlungs- und andere Funktionen für andere Knoten im gesamten Cluster bereitzustellen. Theoretisch reicht es aus, Dienste über einen Server bereitzustellen.
Datenknoten: Der Kern des MySQL-Clusters, der Daten und Protokolle speichert und verschiedene Verwaltungsdienste für Daten bereitstellt. Wenn mehr als zwei Knoten vorhanden sind, kann die Hochverfügbarkeitsgarantie des Clusters erreicht werden. Wenn die Anzahl der DB-Knoten zunimmt, verlangsamt sich die Verarbeitungsgeschwindigkeit des Clusters.
SQL-Knoten (API): Wird für den Zugriff auf MySQL-Cluster-Daten und die Bereitstellung externer Anwendungsdienste verwendet. Durch das Hinzufügen von API-Knoten wird die Geschwindigkeit des gleichzeitigen Zugriffs und der Gesamtdurchsatz des gesamten Clusters verbessert. Der Knoten kann auf dem Webanwendungsserver, auf einem dedizierten Server oder auf demselben Server wie die Datenbank bereitgestellt werden.
2 NDB-Engine
MySQL Cluster verwendet eine dedizierte speicherbasierte Speicher-Engine – NDB-Engine. Der Vorteil davon ist, dass es schnell ist und keinen Festplatten-E/A-Engpass aufweist. Da es jedoch auf dem Speicher basiert, ist die Größe der Datenbank durch den Gesamtspeicher des Systems begrenzt. Wenn der MySQL-Server, auf dem NDB ausgeführt wird, über ausreichend Speicher verfügen muss, z. B. 4G, 8G oder sogar 16G. Die NDB-Engine ist verteilt und kann auf mehreren Servern konfiguriert werden, um Datenzuverlässigkeit und Skalierbarkeit zu erreichen. Theoretisch kann durch die Konfiguration von zwei NDB-Speicherknoten die Redundanz des gesamten Datenbankclusters erreicht und das Single-Point-of-Failure-Problem gelöst werden. .
2.1 Mängel
Basierend auf dem Speicher ist die Größe der Datenbank durch die Gesamtspeichergröße des Clusters begrenzt
Aufgrund des Speichers können Daten nach einem Stromausfall verloren gehen. Dies muss durch Tests überprüft werden.
Mehrere Knoten implementieren Kommunikation, Datensynchronisation, Abfrage und andere Vorgänge über das Netzwerk, sodass die Integrität von der Netzwerkgeschwindigkeit beeinflusst wird.
Daher ist die Geschwindigkeit auch relativ langsam
2.2 Vorteile
Mehrere Knoten können an verschiedenen geografischen Standorten verteilt werden, daher ist es auch eine Lösung zur Implementierung einer verteilten Datenbank.
Die Skalierbarkeit ist sehr gut und der Datenbankcluster kann durch Hinzufügen von Knoten erweitert werden.
Die Redundanz ist sehr gut. Es liegen vollständige Datenbankdaten auf mehreren Knoten vor, sodass Knotenausfallzeiten nicht zu Dienstunterbrechungen führen.
Die Kosten für die Implementierung von Hochverfügbarkeit sind relativ gering. Im Gegensatz zu herkömmlichen Hochverfügbarkeitslösungen, die gemeinsam genutzte Speichergeräte und dedizierte Software erfordern, kann NDB implementiert werden, solange genügend Speicher vorhanden ist.
2. Clusteraufbau
Ein einfachstes MySQL-Clustersystem wird als Root-Konto ausgeführt. Dieser MySQL-Cluster enthält einen Verwaltungsknoten, zwei Datenknoten und zwei SQL-Knoten. Die Namen und IPs der virtuellen Maschinen lauten wie folgt:
Verwaltungsknoten
mysql-mgm
192.168.124.141
Datenknoten1
mysql-ndbd-1
192.168.124.142
Datenknoten2
mysql-ndbd-2
192.168.124.143
SQLKnoten1
mysql-sql-1
192.168. 124.144
SQLKnoten2
mysql-sql-2
192.168.124.145
>
Bitte konfigurieren Sie die Konfigurationselemente hier jeweils auf den drei virtuellen Maschinen. 1. Installieren Sie die virtuelle Maschine
Das Betriebssystem der virtuellen Maschine installiert die x86_64-Version von CentOS 6.4, verwendet das NAT-Netzwerk und installiert auch VMware-Tools Die spezifische Installationsmethode finden Sie hier. Hier nicht näher erläutert.
2. MySQL-Cluster kopieren
Laden Sie die folgende Version von MySQL-Cluster herunter:
http://www.php.cn/Kopieren Sie das heruntergeladene komprimierte Paket in das Verzeichnis /root/Downloads der virtuellen Maschine und führen Sie dann den folgenden Befehl in der Shell aus:
cd /root/Downloads
tar -xvzf mysql-cluster-gpl-7.3.4-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.3.4-linux-glibc2.5-x86_64 /usr/local/mysql
Nach dem Login kopieren
3. Schalten Sie die Sicherheitsrichtlinie aus
chkconfig --level 35 iptables off
Nach dem Login kopieren
Einschalten Deaktivieren Sie die iptables-Firewall (oder schalten Sie die Ports 1186 und 3306 der Firewall ein) und führen Sie den folgenden Befehl in der Shell aus:
gedit /etc/selinux/config
Nach dem Login kopieren
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
Nach dem Login kopieren
Schalten Sie SELinux aus und führen Sie den folgenden Befehl in der Shell aus:
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
gedit config.ini
Installieren Sie den Verwaltungsknoten, es ist keine mysqld-Binärdatei erforderlich. Nur das MySQL-Cluster-Serverprogramm (ndb_mgmd) und das Listening-Client-Programm (ndb_mgm) sind erforderlich. Führen Sie den folgenden Befehl in der Shell aus:
Connected to Management Server at: localhost:1186
2 NDB Cluster node(s) have shutdown.
Disconnecting to allow management server to shutdown.
Nach dem Login kopieren
Nach dem Login kopieren
<🎜><🎜><🎜>4. SQL-Knoten konfigurieren (<🎜><🎜>192.168.124.144 <🎜><🎜>, 192.168.124.145) <🎜><🎜><🎜><🎜><🎜>1. MySQL-Gruppe und Benutzer hinzufügen <🎜><🎜><🎜>Führen Sie den folgenden Befehl in der Shell aus: <🎜>
shell> /etc/init.d/mysql.server stop
Shutting down MySQL... SUCCESS!
Nach dem Login kopieren
Nach dem Login kopieren
<🎜><🎜><🎜><🎜><🎜>< 🎜>2. Konfigurieren Sie die my.cnf-Konfigurationsdatei<🎜 ><🎜><🎜>Führen Sie den folgenden Befehl in der Shell aus: <🎜>
<🎝><🎜 ><🎜><🎜><🎜><🎜>Der Inhalt der Konfigurationsdatei my.cnf lautet wie folgt: <🎜>
<🎝><🎜><🎜><🎜><🎜><🎜><🎜>3. Erstellen Sie die Systemdatenbank <🎜> <🎜><🎜>Führen Sie den folgenden Befehl in der Shell aus: <🎜>
Das obige ist der detaillierte Inhalt vonMySQL-Optimierung – Detaillierte Erläuterung der Schritte zum Cluster-Building-Code (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Die Hauptaufgabe von MySQL in Webanwendungen besteht darin, Daten zu speichern und zu verwalten. 1.Mysql verarbeitet effizient Benutzerinformationen, Produktkataloge, Transaktionsunterlagen und andere Daten. 2. Durch die SQL -Abfrage können Entwickler Informationen aus der Datenbank extrahieren, um dynamische Inhalte zu generieren. 3.Mysql arbeitet basierend auf dem Client-Server-Modell, um eine akzeptable Abfragegeschwindigkeit sicherzustellen.
Der Prozess des Startens von MySQL in Docker besteht aus den folgenden Schritten: Ziehen Sie das MySQL -Image zum Erstellen und Starten des Containers an, setzen
Laravel ist ein PHP -Framework zum einfachen Aufbau von Webanwendungen. Es bietet eine Reihe leistungsstarker Funktionen, darunter: Installation: Installieren Sie die Laravel CLI weltweit mit Komponisten und erstellen Sie Anwendungen im Projektverzeichnis. Routing: Definieren Sie die Beziehung zwischen der URL und dem Handler in Routen/Web.php. Ansicht: Erstellen Sie eine Ansicht in Ressourcen/Ansichten, um die Benutzeroberfläche der Anwendung zu rendern. Datenbankintegration: Bietet eine Out-of-the-Box-Integration in Datenbanken wie MySQL und verwendet Migration, um Tabellen zu erstellen und zu ändern. Modell und Controller: Das Modell repräsentiert die Datenbankentität und die Controller -Prozesse HTTP -Anforderungen.
Bei der Entwicklung einer kleinen Anwendung stieß ich auf ein kniffliges Problem: die Notwendigkeit, eine leichte Datenbankbetriebsbibliothek schnell zu integrieren. Nachdem ich mehrere Bibliotheken ausprobiert hatte, stellte ich fest, dass sie entweder zu viel Funktionalität haben oder nicht sehr kompatibel sind. Schließlich fand ich Minii/DB, eine vereinfachte Version basierend auf YII2, die mein Problem perfekt löste.
Artikelzusammenfassung: Dieser Artikel enthält detaillierte Schritt-für-Schritt-Anweisungen, um die Leser zu leiten, wie das Laravel-Framework einfach installiert werden kann. Laravel ist ein leistungsstarkes PHP -Framework, das den Entwicklungsprozess von Webanwendungen beschleunigt. Dieses Tutorial deckt den Installationsprozess von den Systemanforderungen bis zur Konfiguration von Datenbanken und das Einrichten von Routing ab. Durch die Ausführung dieser Schritte können die Leser schnell und effizient eine solide Grundlage für ihr Laravel -Projekt legen.
Der Schlüssel zur eleganten Installation von MySQL liegt darin, das offizielle MySQL -Repository hinzuzufügen. Die spezifischen Schritte sind wie folgt: Laden Sie den offiziellen GPG -Schlüssel von MySQL herunter, um Phishing -Angriffe zu verhindern. Add MySQL repository file: rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm Update yum repository cache: yum update installation MySQL: yum install mysql-server startup MySQL service: systemctl start mysqld set up booting
MySQL und PhpMyAdmin sind leistungsstarke Datenbankverwaltungs -Tools. 1) MySQL wird verwendet, um Datenbanken und Tabellen zu erstellen und DML- und SQL -Abfragen auszuführen. 2) PHPMYADMIN bietet eine intuitive Schnittstelle für Datenbankverwaltung, Tabellenstrukturverwaltung, Datenoperationen und Benutzerberechtigungsverwaltung.
Im Vergleich zu anderen Programmiersprachen wird MySQL hauptsächlich zum Speichern und Verwalten von Daten verwendet, während andere Sprachen wie Python, Java und C für die logische Verarbeitung und Anwendungsentwicklung verwendet werden. MySQL ist bekannt für seine hohe Leistung, Skalierbarkeit und plattformübergreifende Unterstützung, die für Datenverwaltungsanforderungen geeignet sind, während andere Sprachen in ihren jeweiligen Bereichen wie Datenanalysen, Unternehmensanwendungen und Systemprogramme Vorteile haben.