Über den mysql-Befehlszeilen-Client
mysql (von MariaDB 10.4.6, auch genannt mariadb) ist eine einfache SQL-shell (mit GNU readlinecapabilities). Es unterstützt interaktive und nicht interaktive Nutzung. Wenn es interaktiv verwendet wird, werden die Abfrageergebnisse in einem ASCII-Tabellenformat dargestellt. Wenn usednon-interaktiv (zum Beispiel als Filter), wird das Ergebnis intab-separated Format dargestellt. Das Ausgabeformat kann mit Befehlsoptionen geändert werden.
Wenn Sie aufgrund unzureichender Speicherkapazität für große Ergebnismengen Probleme haben, verwenden Sie die Option--quick
., Dies zwingt mysql, Ergebnisse zeilenweise vom Server abzurufen, anstatt die gesamte Ergebnismenge abzurufen und im Speicher zu puffern, bevor sie angezeigt wird. Dies geschieht durch Rückgabe theresult set mit der mysql_use_result()
C API-Funktion in theclient/Server-Bibliothek statt mysql_store_result()
.
Die Verwendung von MySQL ist sehr einfach. Rufen Sie es über die Eingabeaufforderung Ihres Befehlsinterpreters auf wie folgt:
mysql db_name
Oder:
mysql --user=user_name --password=your_password db_name
Geben Sie dann eine SQL-Anweisung ein, beenden Sie sie mit“;“, \g oder \G und drücken Sie die Eingabetaste.,
Die Eingabe von Control-C bewirkt, dass mysql versucht, thecurrent Anweisung zu töten. Wenn dies nicht möglich ist oder Control-C erneut eingegeben wird, bevordie Anweisung beendet wird, wird mysql beendet.
Sie können SQL-Anweisungen in einer Skriptdatei (Batchdatei) wie folgt ausführen:
mysql db_name < script.sql > output.tab
Ab MariaDB 10.4.6 ist mariadb
als Symlink zu mysql
verfügbar.
Ab MariaDB 10.5.2 ist mysql
der Symlink und mariadb
der binäre Name.,
Mit mysql
Der Befehl zur Verwendung von mysql
und die allgemeine Syntax lautet:
mysql <options>
Options
mysql
unterstützt die folgenden Optionen:
Option | Beschreibung |
---|---|
-? , --help |
Zeigen Sie diese Hilfe an und beenden Sie sie., |
-I , --help |
Synonym for -? |
--abort-source-on-error |
Abort ’source filename‘ operations in case of errors. |
--auto-rehash |
Enable automatic rehashing. This option is on by default, which enables database, table, and column name completion. Use --disable-auto-rehash , --no-auto-rehash or skip-auto-rehash to disable rehashing., Das führt dazu, dass MySQL schneller startet, aber Sie müssen den Befehl rehash ausgeben, wenn Sie die Namensvervollständigung verwenden möchten. Um einen Namen zu vervollständigen, geben Sie den ersten Teil ein und drücken Sie Tab. Wenn der Name eindeutig ist, vervollständigt MySQL ihn. Andernfalls können Sie erneut auf Tab drücken, um die möglichen Namen anzuzeigen, die mit dem beginnen, was Sie bisher eingegeben haben. Der Abschluss erfolgt nicht, wenn keine Standarddatenbank vorhanden ist. |
-A , --no-auto-rehash |
Keine automatische Aufwärmen. Man muss ‚rehash‘ verwenden, um die Vervollständigung von Tabellen und Feldern zu erhalten., Dies gibt einen schnelleren Start von MySQL und deaktiviert das Wiederauffüllen bei Reconnect. |
--auto-vertical-output |
Wechseln Sie automatisch in den vertikalen Ausgabemodus, wenn das Ergebnis breiter als die Klemmbreite ist. |
-B , --batch |
Drucken Sie die Ergebnisse mithilfe der Registerkarte als Spaltentrennzeichen mit jeder Zeile in einer neuen Zeile. Mit dieser Option verwendet MySQL die Verlaufsdatei nicht. Der Stapelmodus führt zu einem nichttabulären Ausgabeformat und zum Maskieren von Sonderzeichen., Escaping kann mit Raw-Modus deaktiviert werden; siehe die Beschreibung für die--raw Option. (Aktiviert --silent .) |
--binary-mode |
Standardmäßig ist ASCII ‚\0‘ nicht zulässig und ‚\r\n‘ wird in ‚\n’übersetzt. Dieser Schalter schaltet beide Funktionen aus und deaktiviert auch das Parsen aller Clientbefehle außer \C und DELIMITER im nicht interaktiven Modus (für Eingaben, die an MySQL weitergeleitet oder mit dem Befehl ’source‘ geladen werden). Dies ist erforderlich, wenn die Ausgabe von mysqlbinlog verarbeitet wird, die möglicherweise Blobs enthält., |
--character-sets-dir=name |
Directory for character set files. |
--column-names |
Write column names in results. (Defaults to on; use --skip-column-names to disable.) |
--column-type-info |
Display column type information. |
-c , --comments |
Preserve comments. Send comments to the server. The default is --skip-comments (discard comments), enable with --comments ., |
-C , --compress |
Komprimieren Sie alle zwischen dem Client und dem Server gesendeten Informationen, wenn beide die Komprimierung unterstützen. |
--connect-expired-password |
Benachrichtigen Sie den Server, dass dieser Client bereit ist, den Sandbox-Modus für abgelaufene Kennwörter zu verarbeiten, selbst wenn --batch angegeben wurde. Von MariaDB 10.4.3. |
--connect-timeout=num |
Anzahl Sekunden vor Verbindungszeitüberschreitung. Standardmäßig Null., |
-D , --database=name |
Database to use. |
-# , --debug |
On debugging builds, write a debugging log. A typical debug_options string is d:t:o,file_name . The default is d:t:o,/tmp/mysql.trace . |
--debug-check |
Check memory and open file usage at exit. |
-T , --debug-info |
Print some debug info at exit., |
--default-auth=plugin |
Standard authentifizierung client-seite plugin zu verwenden. |
--default-character-set=name |
Legen Sie die Standard-Zeichensatz. Ein häufiges Problem, das auftreten kann, wenn das Betriebssystem utf8 oder einen anderen Multibyte-Zeichensatz verwendet, ist, dass die Ausgabe vom MySQL-Client falsch formatiert ist, da der MariaDB-Client standardmäßig den latin1-Zeichensatz verwendet. Normalerweise können Sie solche Probleme beheben, indem Sie diese Option verwenden, um den Client zu zwingen, stattdessen den Systemzeichensatz zu verwenden., Wenn auf auto gesetzt, wird der Zeichensatz aus der Clientumgebung übernommen (LC_CTYPE unter Unix). |
--defaults-extra-file=file |
Lesen Sie diese Datei nach dem global-Dateien werden gelesen. Muss als erste Option angegeben werden. |
--defaults-file=file |
Nur Lesen Standard-Optionen aus der angegebenen Datei. Muss als erste Option angegeben werden. |
--defaults-group-suffix=suffix |
Lesen Sie neben den angegebenen Gruppen auch Gruppen mit diesem Suffix., |
--delimiter=name |
Trennzeichen verwendet werden. Der Standardwert ist das Semikolonzeichen („;“). |
-e , --execute=name |
– Anweisung Ausführen und beenden. Deaktiviert die --force und history-Datei. Das Standardausgabeformat ist wie das mit --batch erzeugte. |
-f , --force |
Weiter, auch wenn wir einen SQL-Fehler. Setzt --abort-source-on-error auf 0., |
-h , --host=name |
Connect to host. |
-H , --html |
Produce HTML output. |
-U , --i-am-a-dummy |
Synonym for option --safe-updates , -U . |
-i , --ignore-spaces |
Ignore space after function names., Ermöglicht Leerzeichen (einschließlich Tabulatorzeichen und neue Zeilenzeichen) zwischen Funktionsname und ‚(‚. Der Nachteil ist, dass dadurch eingebaute Funktionen zu reservierten Wörtern werden. |
--init-command=str |
SQL-Befehl, der beim Herstellen einer Verbindung zum MariaDB-Server ausgeführt wird. Wird beim erneuten Verbinden automatisch erneut ausgeführt. |
--line-numbers |
Schreiben Sie die Zeilennummern für Fehler. (Standardmäßig on; Verwenden Sie --skip-line-numbers zum Deaktivieren.,) |
--local-infile |
LOKALE Fähigkeit zum LADEN von DATEN INFILE aktivieren oder deaktivieren. Ohne Wert aktiviert die Option LOKAL. Die Option kann als oder --local-infile=1 angegeben werden, um LOCAL explizit zu deaktivieren oder zu aktivieren. Das Aktivieren von LOCAL hat keine Auswirkungen, wenn der Server dies nicht ebenfalls unterstützt. |
--max-allowed-packet=num |
Die maximale Paketlänge zum Senden oder Empfangen vom Server. Die standardeinstellung ist 16 MB, die maximale 1 GB., |
--max-join-size=num |
Automatisches Limit für Zeilen in einem Join bei Verwendung von --safe-updates . Standardwert ist 1000000. |
-G , --named-commands |
Aktivieren Sie named Befehle. Namen Befehle bedeuten mysql-internen Befehle (siehe unten) . Wenn aktiviert, können die benannten Befehle aus jeder Zeile der Abfrage verwendet werden, andernfalls nur aus der ersten Zeile vor einer Eingabetaste. Lang-format-Befehle sind erlaubt, nicht nur kurz-format-Befehle., Beispielsweise werden quit und \q erkannt. Deaktivieren Sie mit --disable-named-commands . Diese option ist standardmäßig deaktiviert. |
--net-buffer-length=num |
Die Puffergröße für TCP / IP und Socket-Kommunikation. Standard ist 16KB. |
-b , --no-beep |
Schalten sie beep auf fehler. |
--no-defaults |
Lesen Sie keine Standardoptionen aus einer Optionsdatei. Muss als erste Option angegeben werden., |
-o , --one-database |
Ignorieren Sie Anweisungen mit Ausnahme derjenigen, die auftreten, während die Standarddatenbank in der Befehlszeile benannt ist. Diese Filterung ist begrenzt und basiert nur auf USE Anweisungen. Dies ist nützlich, um Aktualisierungen an anderen Datenbanken im Binärprotokoll zu überspringen. |
--pager |
Pager zum anzeigen der Ergebnisse (nur Unix). Wenn Sie keine Option angeben, wird der Standard-Pager aus Ihrem ENV-Variablen-PAGER übernommen. Gültige Pager sind weniger, mehr, Katze usw. Siehe auch interaktive Hilfe (\h)., Diese Option funktioniert nicht im Batch-Modus. Deaktivieren Sie mit --disable-pager . Diese option ist standardmäßig deaktiviert. |
-p , --password |
Passwort zu verwenden, wenn eine verbindung zu server. Wenn Sie das kurze Optionsformular (-p) verwenden, können Sie kein Leerzeichen zwischen der Option und dem Kennwort haben. Wenn Sie den Kennwortwert nach der Option --password oder in der Befehlszeile weglassen, fordert mysql nach einer. Die Angabe eines Kennworts in der Befehlszeile sollte als unsicher angesehen werden., Sie können eine Optionsdatei verwenden, um zu vermeiden, dass das Kennwort in der Befehlszeile angegeben wird. |
--plugin-dir=name |
Verzeichnis für die client-Seite plugins. |
-P , --port=num |
Portnummer für die Verbindung oder 0 für die Standardeinstellung zu verwenden, in der Reihenfolge der Präferenz, meine.cnf, $MYSQL_TCP_PORT, /etc/services, built-in Standard (3306). |
--print-defaults |
Programmargumentliste ausdrucken und beenden. Muss als erste Option angegeben werden., |
--progress-reports |
Fortschrittsberichte für lange laufende Befehle (z. B. ALTER TABLE) abrufen. (Standardmäßig on; Verwenden Sie --skip-progress-reports zum Deaktivieren.) |
--prompt=name |
Legen Sie die mysql-Eingabeaufforderung auf diesen Wert. Siehe Eingabeaufforderungsbefehl für Optionen. |
--protocol=name |
Das Protokoll für die Verbindung (tcp, socket, pipe, Speicher). |
-q , --quick |
Ergebnis nicht zwischenspeichern, Zeile für Zeile ausdrucken., Dies kann den Server verlangsamen, wenn die Ausgabe unterbrochen wird. Verwendet keine Verlaufsdatei. |
-r , --raw |
Für tabellarische Ausgabe ermöglicht das“ Boxen “ um Spalten die Unterscheidung eines Spaltenwerts von einem anderen. Für nichttabuläre Ausgaben (z. B. im Stapelmodus oder wenn die Option --batch oder --silent angegeben ist) werden Sonderzeichen in der Ausgabe maskiert, sodass sie leicht identifiziert werden können., Newline, tab, NUL und Backslash werden als \n , \t , \0 und geschrieben. Die--raw Option deaktiviert dieses Zeichen zu entkommen. |
--reconnect |
Verbinden Sie sich erneut, wenn die Verbindung unterbrochen wird. Diese option ist standardmäßig aktiviert. Deaktivieren Sie mit --disable-reconnect oder skip-reconnect ., |
-U , --safe-updates |
Erlauben Sie nur die UPDATE-und DELETE-Anweisungen, die angeben, welche Zeilen mithilfe von Schlüsselwerten geändert werden sollen. Wenn Sie diese Option in einer Optionsdatei festgelegt haben, können Sie sie überschreiben, indem Sie --safe-updates in der Befehlszeile verwenden. Weitere Informationen finden Sie unter Verwenden der Option –safe-updates. |
Verweigern Sie die Verbindung des Clients zum Server, wenn das alte Protokoll (vor MySQL4.1.1) verwendet wird. Standardmäßig false (im Gegensatz zu MySQL seit 5,6, standardmäßig true)., | |
--select-limit=num |
Automatisches Limit für SELECT bei Verwendung von –safe-updates. Standard 1000. |
--server-arg=name |
Senden embedded server diese als parameter. |
--shared-memory-base-name=name |
Shared-memory-name-für Windows-verbindungen mit gemeinsamen Speicher auf einem lokalen server (gestartet mit der Option –shared-memory-option). Groß-und Kleinschreibung. |
--show-warnings |
Warnungen Anzeigen, die nach jeder Anweisung. Gilt für interaktive und Batch-Modus., |
--sigint-ignore |
Ignorieren Sie SIGINT-Signale (normalerweise STRG-C). |
-s , --silent |
mehr stillen. Diese Option kann mehrmals angegeben werden, um immer weniger Ausgabe zu erzeugen. Diese Option führt zu einem nichttabulären Ausgabeformat und zum Maskieren von Sonderzeichen. Escaping kann mit Raw-Modus deaktiviert werden; siehe die Beschreibung für die--raw Option. |
-L , --skip-auto-rehash |
Deaktivieren Sie die automatische Aufbereitung., See --auto-rehash . |
-N , --skip-column-names |
Don’t write column names in results. See --column-names . |
-L , --skip-comments |
Discard comments. Set by default, see --comments to enable. |
-L , --skip-line-numbers |
Don’t write line number for errors. See --line-numbers ., |
-L , --skip-progress-reports |
Deaktiviert das Abrufen von Fortschrittsberichten für lange laufende Befehle. Siehe --progress-reports . |
-L , --skip-reconnect |
Verbinden Sie sich nicht erneut, wenn die Verbindung unterbrochen wird. Siehe --reconnect . |
-S , --socket=name |
Für Verbindungen zu localhost, der zu verwendenden Unix-Socket-Datei oder unter Windows der Name der zu verwendenden Named Pipe., |
--ssl |
Aktiviert TLS. TLS ist auch ohne Einstellung dieser Option aktiviert, wenn bestimmte andere TLS-Optionen festgelegt sind. Ab MariaDB 10.2 wird mit der Option --ssl die Überprüfung des Serverzertifikats standardmäßig nicht aktiviert. Um das Serverzertifikat zu überprüfen, muss der Benutzer die Option --ssl-verify-server-cert angeben. |
--ssl-ca=name |
Definiert einen Pfad zu einer PEM-Datei, die ein oder mehrere X509-Zertifikate für vertrauenswürdige Zertifizierungsstellen (CAs) für TLS enthalten soll., Für diese Option müssen Sie den absoluten Pfad und keinen relativen Pfad verwenden. Weitere Informationen finden Sie unter Übersicht über sichere Verbindungen: Zertifizierungsstellen (CAs). Diese option impliziert die --ssl option. |
--ssl-capath=name |
Definiert einen Pfad zu einem Verzeichnis, das eine oder mehrere PEM-Dateien enthält, die jeweils ein X509-Zertifikat für eine vertrauenswürdige Zertifizierungsstelle (CA) für TLS enthalten sollen. Für diese Option müssen Sie den absoluten Pfad und keinen relativen Pfad verwenden., Das mit dieser Option angegebene Verzeichnis muss über den Befehl openssl rehash ausgeführt werden. Weitere Informationen finden Sie unter Übersicht über sichere Verbindungen: Zertifizierungsstellen (CAs). Diese Option wird nur unterstützt, wenn der Client mit OpenSSL oder yaSSL erstellt wurde. Wenn der Client mit GnuTLS oder Schannel erstellt wurde, wird diese Option nicht unterstützt. Weitere Informationen darüber, welche Bibliotheken auf welchen Plattformen verwendet werden, finden Sie unter TLS-und Kryptografiebibliotheken, die von MariaDB verwendet werden. Diese option impliziert die --ssl option., |
--ssl-cert=name |
Definiert einen Pfad zur X509-Zertifikat-Datei für die Verwendung von TLS. Für diese Option müssen Sie den absoluten Pfad und keinen relativen Pfad verwenden. Diese option impliziert die --ssl option. |
--ssl-cipher=name |
Liste der erlaubten Chiffren oder Chiffre-suites für TLS. Diese option impliziert die --ssl option. |
--ssl-crl=name |
Definiert einen Pfad zu einer PEM-Datei, die ein oder mehrere widerrufene X509-Zertifikate für TLS enthalten soll., Für diese Option müssen Sie den absoluten Pfad und keinen relativen Pfad verwenden. Weitere Informationen finden Sie unter Übersicht über sichere Verbindungen: Zertifikatswiderrufslisten (CRLs). Diese Option wird nur unterstützt, wenn der Client mit OpenSSL oder Schannel erstellt wurde. Wenn der Client mit yaSSL oder GnuTLS erstellt wurde, wird diese Option nicht unterstützt. Weitere Informationen darüber, welche Bibliotheken auf welchen Plattformen verwendet werden, finden Sie unter TLS-und Kryptografiebibliotheken, die von MariaDB verwendet werden., |
--ssl-crlpath=name |
Definiert einen Pfad zu einem Verzeichnis, das eine oder mehrere PEM-Dateien enthält, die jeweils ein widerrufenes X509-Zertifikat für TLS enthalten sollten. Für diese Option müssen Sie den absoluten Pfad und keinen relativen Pfad verwenden. Das mit dieser Option angegebene Verzeichnis muss über den Befehl openssl rehash ausgeführt werden. Weitere Informationen finden Sie unter Übersicht über sichere Verbindungen: Zertifikatswiderrufslisten (CRLs). Diese Option wird nur unterstützt, wenn der Client mit OpenSSL erstellt wurde., Wenn der Client mit yaSSL, GnuTLS oder Schannel erstellt wurde, wird diese Option nicht unterstützt. Weitere Informationen darüber, welche Bibliotheken auf welchen Plattformen verwendet werden, finden Sie unter TLS-und Kryptografiebibliotheken, die von MariaDB verwendet werden. |
--ssl-key=name |
Definiert einen Pfad zu einer privaten Schlüsseldatei, die für TLS verwendet werden soll. Für diese Option müssen Sie den absoluten Pfad und keinen relativen Pfad verwenden. Diese option impliziert die --ssl option. |
--ssl-verify-server-cert |
Aktiviert die server-Zertifikat-Verifizierung. Diese option ist standardmäßig deaktiviert., |
-t , --table |
Ausgabe im Tabellenformat anzeigen. Dies ist die Standardeinstellung für die interaktive Verwendung, kann jedoch zur Erzeugung der Tabellenausgabe im Stapelmodus verwendet werden. |
--tee=name |
Append alles in outfile. Siehe auch interaktive Hilfe (\h). Funktioniert nicht im batch-Modus. Deaktivieren Sie mit --disable-tee . Diese option ist standardmäßig deaktiviert. |
--tls-version=name |
Diese option akzeptiert eine durch Kommas getrennte Liste von TLS-Protokoll-Versionen., Eine TLS-Protokollversion wird nur aktiviert, wenn sie in dieser Liste vorhanden ist. Alle anderen TLS-Protokollversionen sind nicht zulässig. Weitere Informationen finden Sie unter Übersicht über sichere Verbindungen: TLS-Protokollversionen. Diese Option wurde in MariaDB 10.4.6 hinzugefügt. |
-n , --unbuffered |
Flush Puffer nach jeder Abfrage. |
-u , --user=name |
Benutzer für die Anmeldung, falls nicht der aktuelle Benutzer. |
-v , --verbose |
mehr Schreiben., (-v -v -v gibt die Tabelle Ausgabeformat). |
-V , --version |
Ausgabe der Versionsinformation und beenden. |
-E , --vertical |
„Drucken“ die Ausgabe einer Abfrage (Zeilen) vertikal. Verwenden Sie das Trennzeichen \G , um eine bestimmte Anweisung anzuwenden, wenn diese Option nicht aktiviert ist. |
-w , --wait |
Wenn die Verbindung nicht hergestellt werden kann, warten Sie und versuchen Sie es erneut, anstatt abzubrechen., |
-X , --xml |
Erzeugen der XML-Ausgabe. Weitere Informationen finden Sie in der Option mysqldump –xml. |
Optionsdateien
Zusätzlich zum Lesen von Optionen über die Befehlszeile kann mysql
auch Optionen aus Optionsdateien lesen. Wenn eine unbekannte Option für mysql
in einer Optionsdatei bereitgestellt wird, wird sie ignoriert.
Die folgenden Optionen beziehen sich darauf, wie die Befehlszeilentools von MariaDB mit Optionsdateien umgehen., Sie müssen als erstes Argument in der Befehlszeile angegeben werden:
In MariaDB 10.2 und höher ist mysql
mit MariaDB Connector/C verknüpft MariaDB Connector/C verarbeitet das Parsen von Optionsdateien für diesen Client jedoch noch nicht. Dies wird weiterhin vom Parsing-Code der Serveroptionsdatei ausgeführt. Siehe MDEV-19035 für weitere Informationen.,
Optionsgruppen
mysql
liest Optionen aus folgenden Optionsgruppen aus Optionsdateien:
Gruppe | Beschreibung |
---|---|
|
Optionen lesen by mysql , das sowohl MariaDB-Server als auch MySQL-Server enthält. |
|
Optionen gelesen durch mysql . Verfügbar ab MariaDB 10.4.6., |
|
Optionen, die von allen MariaDB-und MySQL-Clientprogrammen gelesen werden, einschließlich MariaDB-und MySQL-Clients. Zum Beispiel mysqldump . |
|
Optionen, die von allen MariaDB-Clientprogrammen und dem MariaDB-Server gelesen werden. Dies ist nützlich für Optionen wie Socket und Port, die zwischen dem Server und den Clients üblich sind. |
|
Optionen, die von allen MariaDB-Clientprogrammen gelesen werden., |
So geben Sie an, welches Protokoll beim Herstellen einer Verbindung zum mysqld-Server verwendet werden soll
Folgendes gilt für alle MySQL-und MariaDB-Befehlszeilenclients:
Sie können erzwingen, welches Protokoll zum Herstellen einer Verbindung zum mysqld
– Server verwendet werden soll, indem Sie die protocol
option einer der folgenden Werte: tcp
, socket
, pipe
oder memory
.,
Wenn protocol
nicht angegeben ist, passiert Folgendes:
Linux/Unix
- Wenn
hostname
nicht angegeben ist oderhostname
localhost
ist, werden Unix-Sockets verwendet. Nicht verwendete Verbindungsparameter (wieport
) werden ignoriert. - In anderen Fällen (
hostname
ist angegeben und es ist nichtlocalhost
) wird dann eine tcpip-Verbindung über die Optionport
verwendet.
Beachten Sie, dass localhost
ein besonderer Wert ist., Die Verwendung von 127.0.0.1 ist nicht dasselbe. Letzteres stellt über tcpip eine Verbindung zum mysqld-Server her.
Windows
- Wenn
shared-memory-base-name
angegeben ist undhostname
nicht angegeben ist oderhostname
localhost
ist, erfolgt die Verbindung über den gemeinsam genutzten Speicher. Nicht verwendete Verbindungsparameter (wieport
) werden ignoriert., - Wenn
shared-memory-base-name
nicht angegeben ist, undhostname
nicht angegeben oderhostname
vonlocalhost
, dann wird die Verbindung geschieht durch windows named pipes. - Named pipes werden auch verwendet, wenn die
libmysql
/libmariadb
Client library erkennt, dass der Client tcpip nicht unterstützt. - In anderen Fällen wird dann eine tcpip-Verbindung über die
port
Option verwendet.,
So testen Sie, welches Protokoll verwendet wird
Der Befehl status
zeigt Ihnen Informationen darüber, welches Protokoll verwendet wird:
mysql-Befehle
Es gibt auch eine Reihe von Befehlen, die im Client ausgeführt werden können. Beachten Sie, dass alle Textbefehle zuerst in der Zeile stehen und mit ‚;‘
enden müssen Die mysql_history-Datei
Unter Unix schreibt der MySQL-Client einen Datensatz mit ausgeführten Anweisungen in eine Historifile. Standardmäßig heißt diese Datei .mysql_history
und wird in Ihrem homedirectory erstellt., Um eine andere Datei anzugeben, legen Sie den Wert der Variablen MYSQL_HISTFILEenvironment fest.
Der .mysql_history Datei sollte mit einem restriktiven Zugriffsmodus geschützt werden, weilempfindliche Informationen könnten darauf geschrieben werden, wie der Text von SQLstatements, die Passwörter enthalten.
Wenn Sie keine Verlaufsdatei verwalten möchten, entfernen Sie sie zuerst .mysql_history ifit existiert, und verwenden Sie dann eine der folgenden Techniken:
- Setzen Sie die Variable MYSQL_HISTFILE auf /dev / null. Damit diese Einstellung bei jeder Anmeldung wirksam wird, fügen Sie die Einstellung in eine der Startdateien Ihrer Shell ein.,
- Erstellen .mysql_history als ein symbolischer link zu /dev/null:
shell> ln -s /dev/null $HOME/.mysql_history
Sie müssen dies nur einmal tun.
Eingabeaufforderungsbefehl
Der Eingabeaufforderungsbefehl konfiguriert die Standardaufforderung neu \N >
. Die Zeichenfolge zum Definieren der Eingabeaufforderung kann die folgenden speziellen Sequenzen enthalten.
mysql-Tipps
Dieser Abschnitt beschreibt einige Techniken, mit denen Siemysql
effektiver verwenden können.,
Abfrageergebnisse vertikal anzeigen
Einige Abfrageergebnisse sind viel besser lesbar, wenn sie vertikal angezeigt werden, anstatt im üblichen horizontalen Tabellenformat. Abfragen können vertikal angezeigt werden, indem die Abfrage mit \G anstelle eines Semikolons beendet wird. Zum Beispiel sind längere Textwerte, die Zeilenumbrüche enthalten, mit verticaloutput oft viel einfacher zu lesen:
Mit der Option –safe-updates
Für Anfänger ist eine nützliche Startoption --safe-updates
(oder--i-am-a-dummy
, was den gleichen Effekt hat)., Es ist hilfreich für Fälle, in denen Sie möglicherweise eine DELETE FROM tbl_name
AnweisungDELETE FROM tbl_name
aber die WHERE
Klausel vergessen haben. Normalerweise löscht eine solche Anweisung alle Zeilenaus der Tabelle. Mit --safe-updates
können Sie rowsonly löschen, indem Sie die Schlüsselwerte angeben, die sie identifizieren. Das hilft bei der Prävention.,
Wenn Sie die Option --safe-updates
verwenden, gibt mysql die folgende Anweisung aus, wenn es eine Verbindung zum MariaDB-Server herstellt:
SET sql_safe_updates=1, sql_select_limit=1000, sql_max_join_size=1000000;
Die SET-Anweisung hat folgende Auswirkungen:
- Sie dürfen keine UPDATE-oder DELETE-Anweisung ausführen, es sei denn, Sie geben eine Schlüsseleinschränkung in der WHERE-Klausel an oder geben eine LIMIT-Klausel (oder beides) an. Beispiel:
UPDATE tbl_name SET not_key_column=val WHERE key_column=val;UPDATE tbl_name SET not_key_column=val LIMIT 1;
- Der Server begrenzt alle großen
SELECT
– Ergebnisse auf 1.000 Zeilen, es sei denn, die Anweisung enthält eineLIMIT
– Klausel., - Der Server bricht multiple-table
SELECT
– Anweisungen ab, die wahrscheinlich mehr als 1.000.000 Zeilenkombinationen untersuchen müssen.
mysql --safe-updates --select_limit=500 --max_join_size=10000
Deaktivieren der automatischen MySQL-Verbindung
Wenn der MySQL-Client seine Verbindung zum Server verliert, während er astatement sendet, versucht er sofort und automatisch, sich erneut mit dem Server zu verbinden und die Anweisung erneut zu senden., Selbst wenn mysql erfolgreich istreconnecting ist Ihre erste Verbindung beendet und alle Ihre vorherigen Sessionobjects und Einstellungen gehen verloren: temporäre Tabellen, der Autocommit-Modus und benutzerdefinierte und Sitzungsvariablen. Außerdem wird jede aktuelle Transaktion zurückgesetzt.Dieses Verhalten kann für Sie gefährlich sein, wie im folgenden Beispiel, in dem Theserver zwischen dem ersten und dem zweiten Statement heruntergefahren und neu gestartet wurdeohne Sie es wissen:
Die @a user Variable ist mit der Verbindung verloren gegangen, und nach thereconnection ist es undefiniert., Wenn es wichtig ist, mysql mit einem Fehler beenden zu lassen, wenn die Verbindung unterbrochen wurde, können Sie den MySQL-Client mit der Option --skip-reconnect
starten.
Siehe auch
- Fehlerbehebung bei Verbindungsproblemen
- Readline-Befehle und Konfiguration