[+/-]
In manchen Fällen kann es wünschenswert oder erforderlich sein, mehrere mysqld-Server auf demselben Computer auszuführen. Dies ist etwa der Fall, wenn Sie einen neuen MySQL-Release testen wollen, ohne die vorhandene Produktionskonfiguration anzurühren, oder wenn Sie verschiedenen Benutzern Zugang zu unterschiedlichen mysqld-Servern gestatten wollen, die dann von diesen Benutzern selbst verwaltet werden. (Ein solcher Fall läge bei einem Internetprovider vor, der separate MySQL-Installationen für verschiedene Kunden bereithält.)
Damit mehrere Server auf demselben Computer ausgeführt werden können, benötigt jeder Server eindeutige Werte für verschiedene Betriebsparameter. Diese können über die Befehlszeile oder in Optionsdateien angegeben werden. Siehe auch Abschnitt 4.3, „Angabe von Programmoptionen“.
Zumindest die folgenden Optionen müssen für jeden Server unterschiedlich sein:
          --port=
        port_num
          --port steuert die Portnummer für
          TCP/IP-Verbindungen.
        
          --socket=
        path
          --socket gibt unter Unix den Pfad zur
          Unix-Socketdatei und unter Windows den Namen der Named Pipe
          an. Unter Windows müssen separate Pipe-Namen nur für
          diejenigen Server angegeben werden, die
          Named-Pipe-Verbindungen unterstützen.
        
          --shared-memory-base-name=
        name
Diese Option wird derzeit nur unter Windows verwendet. Sie bezeichnet den Namen des gemeinsamen Speichers, mit dem ein Windows-Server Clients das Herstellen einer Verbindung über gemeinsamen Speicher gestattet. Die Angabe ist nur für Server erforderlich, die Verbindungen über gemeinsamen Speicher unterstützen.
          --pid-file=
        file_name
Diese Option wird nur unter Unix verwendet. Sie gibt den Pfadnamen der Datei an, in die der Server seine Prozesskennung schreibt.
Wenn Sie die folgenden Logdateioptionen verwenden, müssen diese für jeden Server anders sein:
          --log=
        file_name
          --log-bin=
        file_name
          --log-update=
        file_name
          --log-error=
        file_name
          --bdb-logdir=
        file_name
Weitere Informationen zu Logdateien finden Sie in Abschnitt 5.12.5, „Wartung und Pflege der Logdateien“.
Zur Leistungsoptimierung können Sie auch die folgenden Optionen für jeden Server individuell angeben, um so die Last auf mehrere physische Festplatten zu verteilen:
          --tmpdir=
        path
          --bdb-tmpdir=
        path
Auch die Verwendung verschiedener Temporärverzeichnisse wird empfohlen, um besser bestimmen zu können, welche MySQL-Server welche der vorhandenen Temporärdateien erstellt hat.
      Mit sehr wenigen Ausnahmen sollte jeder Server ein eigenes
      Datenverzeichnis haben, das mit der Option
      --datadir=
      angegeben wird.
    path
      Warnung: Normalerweise sollten
      Daten in denselben Datenbanken niemals von zwei Servern
      aktualisiert werden. Dies kann zu unliebsamen Überraschungen
      führen, wenn Ihr Betriebssystem keine fehlerfreie Systemsperrung
      unterstützt. Wenn Sie (ungeachtet dieser Warnung) mehrere Server
      betreiben, die dasselbe Datenverzeichnis verwenden, müssen Sie,
      wenn das Loggen aktiviert ist, die passenden Optionen zur Angabe
      der Logdateinamen festlegen, die für jeden Server eindeutig sein
      müssen. Andernfalls versuchen die Server nämlich, in die
      gleichen Logdateien zu schreiben. Beachten Sie, dass eine solche
      Konfiguration nur bei MyISAM- und
      MERGE-Tabellen funktioniert, nicht aber bei
      anderen Speicher-Engines.
    
Die Warnung vor der gemeinsamen Nutzung eines Datenverzeichnisses durch mehrere Server gilt auch in einer NFS-Umgebung. Mehreren MySQL-Servern den Zugriff auf ein gemeinsames Datenverzeichnis über NFS zu gestatten, ist eine ganz schlechte Idee.
Das Problem ist hierbei primär, dass NFS in punkto Geschwindigkeit einen Flaschenhals darstellt. NFS ist für einen solchen Einsatz schlichtweg ungeeignet.
          Ein weiteres Risiko besteht bei NFS darin, dass Sie eine
          Möglichkeit finden müssen, sicherzustellen, dass zwei oder
          mehr Server einander nicht stören. Normalerweise wird die
          NFS-Dateisperrung vom Daemon lockd
          verwaltet; es gibt aber derzeit keine Plattform, die die
          Sperrung in jeder Situation hundertprozentig zuverlässig
          ausführt.
        
Machen Sie es sich einfach: Lassen Sie die Freigabe eines Datenverzeichnisses für mehrere Server über NFS einfach bleiben. Eine bessere Lösung besteht in der Verwendung eines Computers, der mehrere Prozessoren enthält und ein Betriebssystem verwendet, das Threads effizient verwaltet.
      Wenn Sie mehrere MySQL-Installationen in verschiedenen
      Verzeichnissen haben, können Sie das
      Basisinstallationsverzeichnis für jeden Server mit der Option
      --basedir=
      angeben; in diesem Fall verwendet jeder Server ein anderes
      Datenverzeichnis, eigene Logdateien und eine eigene
      Prozesskennungsdatei. (Standardmäßig werden diese Werte relativ
      zum Basisverzeichnis gesetzt.) In diesem Fall müssen Sie als
      weitere Optionen nur path--socket und
      --port angeben. Angenommen, Sie installieren
      verschiedene MySQL-Versionen aus einer
      tar-Datei mit einer Binärdistribution. Diese
      Versionen werden an verschiedenen Positionen installiert, d. h.
      Sie können den Server für jede Installation mit dem Befehl
      bin/mysqld_safe in seinem jeweiligen
      Basisverzeichnis starten. mysqld_safe bestimmt
      die korrekte --basedir-Option, die an
      mysqld übergeben werden muss; Sie müssen dann
      nur noch die Optionen --socket und
      --port für mysqld_safe
      angeben.
    
      Wie in den vorangegangenen Abschnitten bereits erläutert, können
      zusätzliche Server durch Einstellen von Umgebungsvariablen oder
      durch Angabe passender Befehlszeilenoptionen gestartet werden.
      Wenn Sie allerdings auf Dauer mehrere Server ausführen wollen,
      ist es praktischer, die Optionswerte, die für jeden Server
      eindeutig sein müssen, mithilfe von Optionsdateien anzugeben. Die
      Option --defaults-file ist für diese Zwecke
      praktisch.
    
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

