mysqld_safe ist die empfohlene Methode zum Starten eines mysqld-Servers unter Unix und NetWare. mysqld_safe fügt einige Sicherheitsfunktionen hin zu, so etwa das Neustarten des Servers bei Auftreten eines Fehlers und das Loggen von Laufzeitinformationen in eine Fehlerlogdatei. Das NetWare-spezifische Verhalten wird im weiteren Verlauf dieses Abschnitts beschrieben.
Hinweis: Um die Abwärtskompatibilität mit älteren Versionen von MySQL aufrechtzuerhalten, enthalten MySQL-Binärdistributionen auch weiterhin safe_mysqld als symbolische Verknüpfung mit mysqld_safe. Allerdings sollten Sie sich nicht fest darauf verlassen, da dieses Feature mit an Sicherheit grenzender Wahrscheinlichkeit in Zukunft entfernt werden wird.
Standardmäßig versucht mysqld_safe eine ausführbare Datei namens mysqld-max zu starten, sofern diese vorhanden ist; andernfalls wird mysqld gestartet. Beachten Sie die Auswirkungen dieses Verhaltens:
                Unter Linux ist das MySQL-Max-RPM auf
                dieses Verhalten von mysqld_safe
                angewiesen. Das RPM installiert eine ausführbare Datei
                namens mysqld-max; aufgrund dessen
                verwendet mysqld_safe ab sofort
                automatisch diese Datei anstelle von
                mysqld.
              
Wenn Sie eine MySQL-Max-Distribution installieren, die einen Server namens mysqld-max enthält, und nachfolgend auf eine Nicht-Max-Version von MySQL aktualisieren wollen, dann beachten Sie, dass mysqld_safe nach wie vor versuchen wird, den alten Server mysqld-max auszuführen. Führen Sie ein solches Upgrade durch, dann sollten Sie den alten mysqld-max-Server manuell entfernen, um sicherzustellen, dass mysqld_safe den neuen Server mysqld ausführt.
            Um dieses Standardverhalten außer Kraft zu setzen und den
            Namen des auszuführenden Servers explizit anzugeben,
            müssen Sie eine der Optionen --mysqld oder
            --mysqld-version für
            mysqld_safe angeben. Sie können auch
            --ledir verwenden, um das Verzeichnis
            anzugeben, in dem mysqld_safe nach dem
            Server suchen soll.
          
Viele der Optionen für mysqld_safe sind identisch mit den Optionen für mysqld. Siehe auch Abschnitt 5.2.1, „Befehlsoptionen für mysqld“.
            Alle für mysqld_safe auf der
            Befehlszeile angegebenen Optionen werden an
            mysqld übergeben. Wenn Sie Optionen
            verwenden wollen, die für mysqld_safe
            spezifisch sind und von mysqld nicht
            unterstützt werden, dann geben Sie sie nicht über die
            Befehlszeile an. Stattdessen sollten Sie sie im Abschnitt
            [mysqld_safe] einer Optionsdatei
            auflisten. Siehe auch Abschnitt 4.3.2, „my.cnf-Optionsdateien“.
          
            mysqld_safe liest alle Optionen aus den
            Abschnitten [mysqld],
            [server] und
            [mysqld_safe] in Optionsdateien aus. Aus
            Gründen der Abwärtskompatibilität werden auch
            [safe_mysqld]-Abschnitte ausgelesen, aber
            Sie sollten diese Abschnitte bei MySQL
            5.1-Installationen in
            [mysqld_safe] umbenennen.
          
mysqld_safe unterstützt die folgenden Optionen:
                --help
              
Zeigt eine Hilfsmeldung an und wird dann beendet.
                --autoclose
              
(Nur NetWare.) mysqld_safe stellt unter NetWare eine Bildschirmpräsenz bereit. Wenn Sie das NLM mysqld_safe entladen (herunterfahren), verschwindet der Bildschirm standardmäßig nicht. Stattdessen wird eine Benutzereingabe angefordert:
*<NLM has terminated; Press any key to close the screen>*
                Wenn Sie hingegen wollen, dass NetWare den Bildschirm
                automatisch schließt, dann verwenden Sie die Option
                --autoclose für
                mysqld_safe.
              
                --basedir=
              path
Der Pfad zum MySQL-Installationsverzeichnis.
                --core-file-size=
              size
Größe der Speicherauszugsdatei, die mysqld erstellen können soll. Der Optionswert wird an ulimit -c übergeben.
                --datadir=
              path
Der Pfad zum Datenverzeichnis.
                --defaults-extra-file=
              path
Der Name einer Optionsdatei, die zusätzlich zu den normalen Optionsdateien ausgelesen wird. Wenn diese Option verwendet wird, muss Sie auf der Befehlszeile die erste angegebene Option sein.
                --defaults-file=
              file_name
Der Name einer Optionsdatei, die anstelle der normalen Optionsdateien ausgelesen wird. Wenn diese Option verwendet wird, muss Sie auf der Befehlszeile die erste angegebene Option sein.
                --ledir=
              path
Wenn mysqld_safe den Server nicht finden kann, können Sie diese Option verwenden, um einen Pfadnamen zu dem Verzeichnis anzugeben, in dem sich der Server befindet.
                --log-error=
              file_name
Schreibt das Fehlerlog in die angegebene Datei. Siehe auch Abschnitt 5.12.1, „Die Fehler-Logdatei“.
                --mysqld=
              prog_name
                Name des Serverprogramms (im Verzeichnis
                ledir), das Sie starten wollen. Diese
                Option ist erforderlich, wenn Sie die
                MySQL-Binärdistribution verwenden, aber das
                Datenverzeichnis sich außerhalb der Binärdistribution
                befindet. Wenn mysqld_safe den Server
                nicht finden kann, können Sie die Option
                --ledir verwenden, um einen Pfadnamen
                zu dem Verzeichnis anzugeben, in dem sich der Server
                befindet.
              
                --mysqld-version=
              suffix
                Diese Option ähnelt --mysqld, Sie
                geben aber nur das Suffix für den Serverprogrammnamen
                an. Als Basisname wird mysqld
                vorausgesetzt. Wenn Sie beispielsweise
                --mysqld-version=max verwenden, startet
                mysqld_safe das Programm
                mysqld-max im Verzeichnis
                ledir. Wenn das Argument für
                --mysqld-version leer ist, verwendet
                mysqld_safe mysqld
                im Verzeichnis ledir.
              
                --nice=
              priority
                Stellt die Zeitplanungspriorität mit dem Programm
                nice auf den angegebenen Wert.
              
                --no-defaults
              
Optionsdateien werden nicht auslesen. Wenn diese Option verwendet wird, muss Sie auf der Befehlszeile die erste angegebene Option sein.
                --open-files-limit=
              count
                Anzahl der Dateien, die mysqld
                öffnen können sollte. Der Optionswert wird an
                ulimit -n übergeben. Beachten Sie,
                dass Sie mysqld_safe als
                root starten müssen, damit dies
                einwandfrei funktioniert!
              
                --pid-file=
              file_name
Der Pfadname der Prozesskennungsdatei.
                --port=
              port_num
                Portnummer, die der Server beim Horchen auf
                TCP/IP-Verbindungen verwenden soll. Die Portnummer muss
                1.024 oder höher sein, sofern der Server nicht vom
                Systembenutzer root gestartet wird.
              
                --socket=
              path
Unix-Socketdatei, die der Server bei Horchen auf lokale Verbindungen verwenden soll.
                --timezone=
              timezone
                Weist der Zeitzonen-Umgebungsvariablen
                TZ den angegebenen Optionswert zu.
                Informationen zu zulässigen Formaten für
                Zeitzonenangaben finden Sie in der Dokumentation zu
                Ihrem Betriebssystem.
              
                --user={
              user_name |
                user_id}
                Führt den Server mysqld als Benutzer
                mit dem spezifizierten Benutzernamen
                (user_name) oder der
                numerischen Benutzerkennung
                (user_id) aus.
                („Benutzer“ bezeichnet in diesem Kontext
                ein Systemanmeldekonto und keinen in den Grant-Tabellen
                aufgeführten MySQL-Benutzer.)
              
            Wenn Sie mysqld_safe mit den Optionen
            --defaults-file oder
            --defaults-extra-option ausführen, um eine
            Optionsdatei zu benennen, dann muss diese Option als erste
            auf der Befehlszeile angegeben werden, da die Optionsdatei
            andernfalls nicht benutzt wird. So wird die Optionsdatei
            etwa bei folgendem Befehl nicht verarbeitet:
          
mysql> mysqld_safe --port=port_num --defaults-file=file_name
Verwenden Sie stattdessen den folgenden Befehl:
mysql> mysqld_safe --defaults-file=file_name --port=port_num
Das Skript mysqld_safe ist so abgefasst, dass es normalerweise einen Server starten kann, der aus einer Quell- oder eine Binärdistribution von MySQL installiert wurde, auch wenn diese Distributionstypen den Server normalerweise an etwas anderen Positionen installieren. (Siehe auch Abschnitt 2.1.5, „Installationslayouts“.) mysqld_safe setzt voraus, dass eine der folgenden Bedingungen erfüllt ist:
                Server und Datenbanken befinden sich relativ zum
                Arbeitsverzeichnis (d. h. zu dem Verzeichnis, aus dem
                heraus mysqld_safe aufgerufen wurde).
                Bei Binärdistributionen sucht
                mysqld_safe in seinem
                Arbeitsverzeichnis nach den Verzeichnissen
                bin und data.
                Bei Quelldistributionen hingegen wird nach den
                Verzeichnissen libexec und
                var gesucht. Diese Bedingung sollte
                erfüllt sein, wenn Sie mysqld_safe
                aus Ihrem MySQL-Installationsverzeichnis heraus aufrufen
                (z. B. /usr/local/mysql bei einer
                Binärdistribution).
              
                Wenn der Server und die Datenbanken relativ zum
                Arbeitsverzeichnis nicht vorgefunden werden, versucht
                mysqld_safe sie anhand absoluter
                Pfadnamen zu ermitteln. Typische Positionen sind
                /usr/local/libexec und
                /usr/local/var. Die tatsächlichen
                Verzeichnisse werden den Werten entnommen, die bei der
                Erstellung in die Distribution einkonfiguriert wurden.
                Sie sollten korrekt sein, wenn MySQL im während der
                Konfiguration angegebenen Verzeichnis installiert ist.
              
Da mysqld_safe den Server und die Datenbanken relativ zum eigenen Arbeitsverzeichnis zu finden versucht, können Sie eine MySQL-Binärdistribution an beliebiger Stelle installieren, solange Sie mysqld_safe aus dem MySQL-Installationsverzeichnis heraus aufrufen:
shell>cdshell>mysql_installation_directorybin/mysqld_safe &
            Wenn mysqld_safe fehlschlägt, obwohl es
            aus dem MySQL-Installationsverzeichnis heraus aufgerufen
            wurde, können Sie die Optionen --ledir und
            --datadir angeben, um die Verzeichnisse
            anzuzeigen, in denen der Server und die Datenbanken auf
            Ihrem System vorhanden sind.
          
            Normalerweise sollten Sie das Skript
            mysqld_safe nicht bearbeiten.
            Konfigurieren Sie stattdessen mysqld_safe
            über Befehlszeilenoptionen oder Optionen im Abschnitt
            [mysqld_safe] einer Optionsdatei
            my.cnf. In seltenen Fällen kann es
            unter Umständen erforderlich sein,
            mysqld_safe zu modifizieren, damit der
            Server korrekt startet. Beachten Sie allerdings, dass Ihre
            geänderte Version von mysqld_safe bei
            einem zukünftigen MySQL-Upgrade überschrieben werden
            könnte; deswegen sollten Sie eine Kopie der editierten
            Version erstellen, die Sie bei Bedarf neu installieren
            können.
          
Unter NetWare ist mysqld_safe ein NLM, das aus dem ursprünglichen Unix-Shell-Skript portiert wurde. Es startet den Server wie folgt:
Eine Reihe von System- und Optionstest wird ausgeführt.
                Die MyISAM-Tabellen werden
                überprüft.
              
Es wird eine Bildschirmpräsenz für den MySQL-Server bereitgestellt.
mysqld wird gestartet und überwacht. Wird es mit einem Fehler beendet, so erfolgt ein Neustart.
                Fehlermeldungen von mysqld werden in
                die Datei
                host_name.err
                Bildschirmausgaben von mysqld_safe
                werden in die Datei
                host_name.safe
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.

