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