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>cd
shell>mysql_installation_directory
bin/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
im Datenverzeichnis geschrieben.
host_name
.err
Bildschirmausgaben von mysqld_safe
werden in die Datei
im Datenverzeichnis geschrieben.
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.