Site Overlay

mysql-Kommandozeilen-Client

Ü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 mysqlverfü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 --batcherzeugte.
-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 oder hostname localhost ist, werden Unix-Sockets verwendet. Nicht verwendete Verbindungsparameter (wie port) werden ignoriert.
  • In anderen Fällen (hostname ist angegeben und es ist nicht localhost) wird dann eine tcpip-Verbindung über die Option port 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 und hostname nicht angegeben ist oder hostname localhost ist, erfolgt die Verbindung über den gemeinsam genutzten Speicher. Nicht verwendete Verbindungsparameter (wie port) werden ignoriert.,
  • Wenn shared-memory-base-name nicht angegeben ist, und hostname nicht angegeben oder hostname von localhost, dann wird die Verbindung geschieht durch windows named pipes.
  • Named pipes werden auch verwendet, wenn dielibmysql / libmariadb Client library erkennt, dass der Client tcpip nicht unterstützt.
  • In anderen Fällen wird dann eine tcpip-Verbindung über dieport 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ßenSELECT – Ergebnisse auf 1.000 Zeilen, es sei denn, die Anweisung enthält eine LIMIT – 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.