GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So konfigurieren Sie mehrere MySQL-Server auf einem System mit mysqld_multi

Es sind nur wenige Schritte notwendig, um mehrere Server auf einem System einzurichten. Zunächst muss die Konfigurationsdatei für MySQL angepasst werden. Für jeden Server muss eine separate Gruppe von Optionen eingegeben werden. Jedem Server sollte mindestens ein eindeutiger TCP/IP-Port und entweder eine andere Socket-Datei zugewiesen werden.

Servergruppen für mehrere Server in der Konfigurationsdatei werden durch ein mysqld-Präfix gefolgt von einem Zahlensuffix identifiziert. Beispielsweise könnte der erste Server durch eine Gruppenüberschrift wie [mysqld1] identifiziert werden, Sie könnten mit 0 oder einer anderen Zahl beginnen. Der zweite Server könnte [mysqld2] sein. Die Nummern müssen per se nicht fortlaufend sein. Zahlen können übersprungen werden. Alle Optionen, die für eine [mysqld]-Gruppe gegeben werden können, können jedem zusätzlichen Server gegeben werden. Auf diese Weise können Sie die Serveroptionen ändern, um spezielle Anforderungen zu erfüllen, die möglicherweise für eine Datenbank erforderlich sind. Unten sind die Inhalte aus einer /etc/my.cnf Datei, die für drei Server konfiguriert ist.

Hinweis Hinweis:Es ist besonders wichtig zu beachten, dass jede Instanz auch ihr eigenes Datenverzeichnis haben sollte. Jedem Server sollte mindestens ein eindeutiger TCP/IP-Port und/oder eine andere Socket-Datei zugewiesen werden.
# vi /etc/my.cnf
[mysqld_multi]
mysqld = /usr/local/bin/mysqld_safe

[mysqld0]
port = 3306
socket = /tmp/mysql.sock0
pid-file = /usr/local/mysql/server0/
user = mysql0
datadir = /usr/local/mysql/server0

[mysqld1]
port = 3307
socket = /tmp/mysql.sock1
pid-file = /usr/local/mysql/server1/
user = mysql1
datadir = /usr/local/mysql/server1

[mysqld2]
port = 3308
socket = /tmp/mysql.sock2
pid-file = /usr/local/mysql/server2/
user = mysql2
datadir = /usr/local/mysql/server2

Beachten Sie zunächst, dass es keine Gruppe namens [mysqld] gibt . Das würde die Sache verwirren. In dieser Konfigurationsdatei verwendet jeder Server einen anderen Port. Dies erfordert Anpassungen an allen Skripten, die auf den Server zugreifen. Der Port muss angegeben werden, damit der Standardport (3306 ) wird nicht verwendet. Der erste Server oben verwendet den Standardport. In diesem Beispiel wird für jeden Server ein separater Dateisystembenutzer benannt. Dies ist nicht erforderlich. Es kann jedoch für eine bessere Sicherheitskontrolle nützlich sein. Natürlich muss jeder Systembenutzer auf Dateisystemebene erstellt werden.

Die letzte Option, die in jeder Gruppe der obigen Konfigurationsdatei eingestellt ist, ist das Datenverzeichnis für jeden Server. Die Server können nicht dasselbe Datenverzeichnis teilen. Daher erfordert dies die Erstellung eines separaten Verzeichnisses im Dateisystem. Achten Sie darauf, den Besitz der Datenverzeichnisse auf den jeweiligen Systembenutzer (z. B. mysql0) zu ändern.

Sobald die Konfigurationsdatei ordnungsgemäß eingerichtet, die Systembenutzer erstellt und die zugehörigen Verzeichnisse vorhanden sind, können die Server gestartet werden. Um dies einfach zu tun, verwenden Sie mysqld_multi Skript. Dieses Skript liest die MySQL-Konfigurationsdatei und sucht nach Servergruppen gemäß der zuvor erwähnten Namenskonvention. Um alle Server zu starten, geben Sie Folgendes über die Befehlszeile ein:

$ mysqld_multi start

Diese Zeile startet eine separate Instanz von mysqld_safe für jede in der Konfigurationsdatei aufgeführte Servergruppe. Um übrigens eine spezielle Konfigurationsdatei für mysqld_multi zu verwenden, fügen Sie einfach die „–config-file =file ”-Option vor dem Startparameter. Um alle Server zu stoppen, ersetzen Sie den Parameter start durch stop. Verwenden Sie für Serverstatusberichte den Berichtsparameter. Um einen bestimmten Server zu starten, geben Sie nach dem Startparameter die Identifikationsnummer des Servers an. Um beispielsweise den Server mit der Bezeichnung [mysqld2] in der zuvor gezeigten Konfigurationsdatei zu stoppen, würde Folgendes eingegeben:

$ mysqld_multi stop 2

Das mysqld-Präfix wird weggelassen. Eine Reihe von Servern kann benannt werden, indem die Nummer des ersten Servers gefolgt von einem Bindestrich und dann die Nummer des letzten angegeben wird (z. B. 2-5). Server können einzeln aufgelistet werden, indem ihre Kennung durch Kommas getrennt wird (z. B. 2, 4). Und es kann eine Kombination beider Methoden verwendet werden (z. B. 2, 4-7).

Für eine längere Reihe von Beispielen, wie eine Konfigurationsdatei erstellt werden kann, geben Sie Folgendes in der Befehlszeile ein:

$ mysqld_multi --example


Linux
  1. So konfigurieren Sie mehrere Websites mit dem Apache-Webserver

  2. Wie Sie Ihr System (CPU, File IO, MySQL) mit Sysbench bewerten

  3. So konfigurieren Sie eine MySQL-Slave-Datenbank

  4. So konfigurieren Sie eine separate Override.conf für mehrere MySQL-Instanzen mit Systemd

  5. Wie teilt man eine Textdatei in mehrere *.txt-Dateien auf?

Wie konfiguriere ich den SFTP-Server auf CentOS?

So richten Sie einen einfachen Dateiserver mit simpleHTTPserver ein

So verbinden Sie mehrere Zeilen in einer Datei in Linux zu einer

So mounten Sie ein Remote-Linux-Dateisystem mit SSHFS

So installieren und konfigurieren Sie einen NFS-Server auf einem Linux-System

So installieren Sie den Samba-Dateifreigabeserver auf einem Linux-System