Normalerweise starten Sie den mysqld-Server unter Verwendung einer der folgenden Möglichkeiten:
Durch direkten Aufruf von mysqld. Das funktioniert auf allen Plattformen.
Durch Ausführung des MySQL Servers als Windows-Dienst. Dies ist unter Windows-Versionen möglich, die Dienste unterstützen (also NT, 2000, XP und 2003). Der Dienst kann entweder so konfiguriert werden, dass der Server automatisch mit Windows startet, oder als manueller Dienst, den Sie manuell starten müssen. Informationen zur Vorgehensweise finden Sie in Abschnitt 2.3.12, „Starten von MySQL als Windows-Dienst“.
Durch Aufruf von mysqld_safe. Hierbei wird versucht, die passenden Optionen für mysqld zu ermitteln und es dann mit diesen Optionen zu starten. Dieses Skript wird unter Unix und Unix-ähnlichen Systemen verwendet. Siehe auch Abschnitt 5.4.1, „mysqld_safe — Startskript für den MySQL-Server“.
Durch den Aufruf von mysql.server.
Dieses Skript wird in erster Linie beim Starten und
Beenden von Systemen verwendet, die
Ausführungsverzeichnisse im System V-Stil verwenden, wo
es normalerweise unter dem Namen mysql
installiert ist. Das Skript
mysql.server startet den Server, indem
es mysqld_safe aufruft. Siehe auch
Abschnitt 5.4.2, „mysql.server — Startskript für den MySQL-Server“.
Unter Mac OS X können Sie ein separates MySQL-Startobjektpaket installieren, um den automatischen Start von MySQL beim Systemstart zu aktivieren. Das Startobjekt startet den Server durch Aufruf von mysql.server. Weitere Informationen finden Sie in Abschnitt 2.5, „Installation von MySQL unter Mac OS X“.
Die Skripten mysqld_safe und mysql.server und das Mac OS X-Startobjekt können für den manuellen Start des Servers oder für seinen automatischen Start beim Systemstart verwendet werden. mysql.server und das Startobjekt erlauben zudem das Beenden des Servers.
Um den Server mit mysql.server manuell zu
starten oder zu beenden, rufen Sie es mit dem Argument
start
bzw. stop
auf:
shell>mysql.server start
shell>mysql.server stop
Bevor mysql.server den Server startet,
wechselt es in das MySQL-Installationsverzeichnis und ruft
dann mysqld_safe auf. Wenn Sie wollen, dass
der Server als ein bestimmter Benutzer ausgeführt wird,
fügen Sie die entsprechende Option user
im
Abschnitt [mysqld]
der Optionsdatei
/etc/my.cnf
hinzu. Eine Erklärung
erhalten Sie im weiteren Verlauf dieses Abschnitts. (Unter
Umständen müssen Sie mysql.server
bearbeiten, wenn Sie eine Binärdistribution von MySQL in
einem anderen als dem Standardverzeichnis installiert haben.
Ändern Sie es so, dass es via cd
in das
korrekte Verzeichnis wechselt, bevor es
mysqld_safe ausführt. Beachten Sie
allerdings, dass Ihre geänderte Version von
mysql.server 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.)
mysql.server stop beendet den Server, indem es ein Signal an ihn schickt. Sie können den Server auch manuell beenden, indem Sie mysqladmin shutdown ausführen.
Um MySQL automatisch auf Ihrem Server zu starten und zu
beenden, müssen Sie Start- und Stoppbefehle an den
entsprechenden Stellen Ihrer
/etc/rc*
-Dateien einfügen.
Wenn Sie das Linux-Server-RPM-Paket
(MySQL-server-
)
verwenden, wird das Skript mysql.server im
Verzeichnis VERSION
.rpm/etc/init.d
unter dem Namen
mysql
installiert. Sie müssen die
Installation also nicht manuell vornehmen. Weitere
Informationen zu Linux-RPM-Paketen finden Sie in
Abschnitt 2.4, „MySQL unter Linux installieren“.
Manche Anbieter stellen RPM-Pakete bereit, die ein Startskript unter einem anderen Namen wie etwa mysqld installieren.
Wenn Sie MySQL aus einer Quelldistribution installieren oder
ein Binärdistributionsformat verwenden, das
mysql.server nicht automatisch installiert,
können Sie es manuell installieren. Sie finden das Skript im
Verzeichnis support-files
, das sich im
MySQL-Installationsverzeichnis befindet, oder in einem
MySQL-Source-Tree.
Um mysql.server manuell zu installieren,
kopieren Sie es unter dem Namen mysql in
das Verzeichnis /etc/init.d
und machen es
dann ausführbar. Dies tun Sie, indem Sie in das entsprechende
Verzeichnis wechseln, in dem sich
mysql.server befindet, und dann die
folgenden Befehle ausführen:
shell>cp mysql.server /etc/init.d/mysql
shell>chmod +x /etc/init.d/mysql
Ältere Red Hat-Systeme verwenden das Verzeichnis
/etc/rc.d/init.d
statt
/etc/init.d
. In diesem Fall müssen Sie
die obigen Befehle entsprechend ändern. Alternativ erstellen
Sie zunächst /etc/init.d
als symbolische
Verknüpfung, die auf /etc/rc.d/init.d
verweist:
shell>cd /etc
shell>ln -s rc.d/init.d .
Nach der Installation des Skripts hängt der Befehl, der zur
Aktivierung der Ausführung beim Systemstart erforderlich ist,
von Ihrem Betriebssystem ab. Unter Linux können Sie
chkconfig
verwenden:
shell> chkconfig --add mysql
Unter manchen Linux-Systemen scheint auch der folgende Befehl notwendig zu sein, um das Skript mysql vollständig zu aktivieren:
shell> chkconfig --level 345 mysql on
Unter FreeBSD sollten Startskripten generell in
/usr/local/etc/rc.d/
abgelegt werden. Die
Manpage rc(8)
gibt an, dass Skripten in
diesem Verzeichnis nur dann ausgeführt werden, wenn ihr
Basisname dem Shell-Muster für Dateinamen
*.sh
entspricht. Alle anderen Dateien oder
Verzeichnisse, die in diesem Verzeichnis vorhanden sind,
werden stillschweigend ignoriert. Mit anderen Worten: Unter
FreeBSD müssen Sie das Skript
mysql.server
als
/usr/local/etc/rc.d/mysql.server.sh
installieren, um den automatischen Start zu aktivieren.
Als Alternative zur obigen Konfiguration verwenden manche
Betriebssysteme auch /etc/rc.local
oder
/etc/init.d/boot.local
, um zusätzliche
Dienste beim Systemstart zu starten. Um MySQL auf diese Weise
zu starten, könnten Sie einen Befehl wie den folgenden an die
entsprechende Startdatei anhängen:
/bin/sh -c 'cd /usr/local/mysql; ./bin/mysqld_safe --user=mysql &'
Bei anderen Systemen lesen Sie in der Dokumentation zu Ihrem Betriebssystem nach, um zu erfahren, wie Startskripten installiert werden.
Sie können Optionen für mysql.server in
einer globalen Datei /etc/my.cnf
ablegen.
Eine /etc/my.cnf
-Datei sieht
normalerweise so aus:
[mysqld] datadir=/usr/local/mysql/var socket=/var/tmp/mysql.sock port=3306 user=mysql [mysql.server] basedir=/usr/local/mysql
Das Skript mysql.server versteht die
folgenden Optionen: basedir
,
datadir
und pid-file
.
Sofern angegeben, müssen diese in einer
Optionsdatei und nicht an der Befehlszeile abgelegt sein.
mysql.server versteht nur
start
und stop
als
Befehlszeilenargumente.
Die folgende Tabelle zeigt, welche Optionsgruppen der Server und die jeweiligen Startskripten aus den Optionsdateien auslesen:
Skript | Abschnitte in der Optionsdatei |
mysqld |
[mysqld] , [server] ,
[mysqld-
|
mysqld_safe |
[mysqld] , [server] ,
[mysqld_safe]
|
mysql.server |
[mysqld] , [mysql.server] ,
[server]
|
[mysqld-
bedeutet, dass Abschnitte mit Namen wie
major_version
][mysqld-5.0]
und
[mysqld-5.1]
von Servern der
Versionen 5.0.x, 5.1.x usw.
ausgelesen werden. Diese Funktion kann verwendet werden, um
Optionen anzugeben, die nur von Servern einer bestimmten
Release-Serie ausgelesen werden können.
Zwecks Abwärtskompatibilität liest
mysql.server auch den Abschnitt
[mysql_server]
und
mysqld_safe den Abschnitt
[safe_mysqld]
aus. Allerdings sollten Sie
Ihre Optionsdateien so aktualisieren, dass sie stattdessen die
Abschnitte [mysql.server]
und
[mysqld_safe]
auslesen, wenn Sie MySQL
5.1 verwenden.
Siehe auch Abschnitt 4.3.2, „my.cnf-Optionsdateien“.
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.