Auf der Befehlszeile angegebene Programmoptionen unterliegen den folgenden Regeln:
Optionen werden auf den Befehlsnamen folgend angegeben.
Ein Optionsargument beginnt abhängig davon, ob es sich um
einen kurzen oder langen Optionsnamen handelt, mit einem
oder zwei Bindestrichen. Für viele Optionen sind sowohl ein
Kurz- als auch ein Langname vorhanden. Beispielsweise sind
-?
und --help
die Kurz-
und die Langform der Option, die ein MySQL-Programm anweist,
eine Hilfemeldung anzuzeigen.
Bei Optionsnamen wird die Groß-/Kleinschreibung
unterschieden. Das bedeutet, dass sowohl -v
als auch -V
zulässig sind und auch
unterschiedliche Bedeutungen haben. (Es handelt sich hierbei
um die Kurzformen der Optionen --verbose
bzw. --version
.)
Einige Optionen nehmen einen Wert entgegen, der auf den
Optionsnamen folgt. So bezeichnet -h
localhost
bzw. --host=localhost
den MySQL Server für ein Clientprogramm. Der Optionswert
nennt dem Programm den Namen des Hosts, auf dem der MySQL
Server ausgeführt wird.
Bei einer Option mit einem Langnamen, die einen Wert
entgegennimmt, trennen Sie den Optionsnamen und den Wert
durch das Zeichen ‘=
’. Bei
Verwendung einer Kurzform, die einen Wert entgegennimmt,
kann dieser entweder direkt oder durch ein Leerzeichen
getrennt auf den Optionsbuchstaben folgen:
-hlocalhost
und -h
localhost
sind gleichbedeutend. Eine Ausnahme
dieser Regel ist die Option zur Angabe Ihres
MySQL-Passworts. Diese Option kann in der Langform entweder
als
--password=
oder als pass_val
--password
angegeben werden. Im
zweiten Fall (in dem kein Passwort übergeben wird) fordert
das Programm Sie danach zur Eingabe des Passworts auf. Die
Passwortoption kann auch in Kurzform als
-p
oder
als pass_val
-p
angegeben werden. Allerdings muss
die Eingabe des Passwortwerts bei der Kurzform unmittelbar
auf den Optionsbuchstaben folgend, d. h. ohne
trennendes Leerzeichen, erfolgen. Der Grund
hierfür ist, dass, wenn ein Leerzeichen auf den
Optionsbuchstaben folgt, das Programm keine Möglichkeit
hat, festzustellen, ob das nachfolgende Argument der
Passwortwert oder ein anderes Argument sein soll. Hieraus
ergibt sich, dass die folgenden beiden Befehle zwei völlig
unterschiedliche Bedeutungen haben:
shell>mysql -ptest
shell>mysql -p test
Der erste Befehl weist mysql an, den
Passwortwert test
zu verwenden, gibt aber
keine Standarddatenbank an. Der zweite Befehl hingegen weist
mysql an, zur Eingabe des Passworts
aufzufordern und test
als
Standarddatenbank zu verwenden.
Einige Optionen steuern Verhaltensweisen, die sich aktivieren
oder deaktivieren lassen. So unterstützt der Client
mysql etwa eine Option
--column-names
, die bestimmt, ob zu Beginn der
Abfrageergebnisse eine Zeile mit Spaltennamen angezeigt wird
oder nicht. Standardmäßig ist diese Option aktiviert. Unter
Umständen kann es jedoch sinnvoll sein, sie zu deaktivieren,
wenn Sie beispielsweise die Ausgabe von mysql
an ein anderes Programm übergeben, das nur die Daten und keine
Kopfzeile erwartet.
Sie können die Spaltennamen mit jeder der folgenden Optionen deaktivieren:
--disable-column-names --skip-column-names --column-names=0
Die Präfixe --disable
und
--skip
und das Suffix =0
haben den jeweils gleichen Effekt: Sie schalten die Option ab.
Um die „einschaltende“ Form der Option anzugeben, gibt es die folgenden Möglichkeiten:
--column-names --enable-column-names --column-names=1
Wenn einer Option das Präfix --loose
vorangestellt wird, bricht ein Programm, dass die Option nicht
erkennt, nicht mit einer Fehlermeldung ab, sondern setzt
lediglich eine Warnung ab:
shell> mysql --loose-no-such-option
mysql: WARNING: unknown option '--no-such-option'
Das Präfix --loose
kann nützlich sein, wenn
Sie Programme unter mehreren MySQL-Installationen auf demselben
Computer ausführen und die Optionen in einer Optionsdatei
auflisten. Eine Option, die unter Umständen nicht von allen
Versionen eines Programms erkannt wird, kann mithilfe des
Präfixes --loose
(bzw.
loose
in einer Optionsdatei) angegeben
werden. Versionen des Programms, die die Option erkennen, werden
sie dann in der Regel auch verarbeiten, während
Programmversionen, die sie nicht erkennen, eine Warnung absetzen
und sie ansonsten ignorieren.
Eine andere Option, die in Verbindung mit
mysql gelegentlich nützlich sein kann, ist
--execute
oder -e
. Hiermit
können Sie SQL-Anweisungen an den Server übergeben. Die
Anweisungen müssen in einfache oder doppelte Anführungszeichen
gesetzt sein. Wenn Sie Werte in Anführungszeichen innerhalb
einer Anweisung angeben wollen, sollten Sie doppelte
Anführungszeichen für die Anweisung selbst und einfache
Anführungszeichen für Werte innerhalb der Anweisung benutzen.
Wenn Sie diese Option verwenden, führt mysql
die Anweisung aus und wird dann beendet.
So können Sie beispielsweise mithilfe des folgenden Befehls eine Liste der Benutzerkonten aufrufen:
shell>mysql -u root -p --execute="SELECT User, Host FROM user" mysql
Enter password:******
+------+-----------+ | User | Host | +------+-----------+ | | gigan | | root | gigan | | | localhost | | jon | localhost | | root | localhost | +------+-----------+ shell>
Beachten Sie, dass auf die Langform (--execute
)
das Gleichheitszeichen (=
) folgen muss.
In obigem Beispiel wurde der Name der Datenbank
mysql
als separates Argument übergeben.
Dieselbe Anweisung hätte auch mit dem folgenden Befehl
ausgeführt werden können, der keine Standarddatenbank angibt:
mysql> mysql -u root -p --execute="SELECT User, Host FROM mysql.user"
Über die Befehlszeile lassen sich mehrere SQL-Anweisungen durch Semikola getrennt angeben:
shell>mysql -u root -p -e "SELECT VERSION();SELECT NOW()"
Enter password:******
+-----------------+ | VERSION() | +-----------------+ | 5.1.5-alpha-log | +-----------------+ +---------------------+ | NOW() | +---------------------+ | 2006-01-05 21:19:04 | +---------------------+
Die Option --execute
oder -e
kann auch verwendet werden, um Befehle in analoger Form an
ndb_mgm, den Verwaltungsclient für MySQL
Cluster, zu übergeben. Ein Beispiel finden Sie in
Abschnitt 16.3.6, „Sicheres Herunterfahren und Neustarten“.
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.