Site Overlay

MySQL Command-line Client (Svenska)

om MySQL Command-Line Client

mysql (från MariaDB 10.4.6, även kallad mariadb) är ett enkelt SQL-skal (med GNU readlinecapabilities). Den stöder interaktiv och icke-interaktiv användning. När du användsinteraktivt presenteras frågeresultaten i ett ASCII-tabellformat. När du användernon-interaktivt (till exempel som ett filter) presenteras resultatet intab-separerat format. Utdataformatet kan ändras med hjälp av kommandoralternativ.

om du har problem på grund av otillräckligt minne för stora resultatuppsättningar, använd alternativet--quick., Detta tvingar mysql att hämta resultat frånservern en rad i taget snarare än att hämta hela resultatuppsättningen ochbuffera den i minnet innan den visas. Detta görs genom att returnera resultatuppsättningen med hjälp av mysql_use_result() C API-funktionen i theclient/server library i stället för mysql_store_result().

det är väldigt enkelt att använda mysql. Anropa det från prompten för din kommandotolk följer:

mysql db_name

eller:

mysql --user=user_name --password=your_password db_name

skriv sedan en SQL-sats, avsluta den med ”;”, \G eller \g och tryck på Enter.,

skriva Control-C orsakar mysql att försöka döda thecurrent uttalande. Om detta inte kan göras, eller Control-C skrivs igen innanutlåtandet dödas, lämnar mysql.

Du kan köra SQL-satser i en scriptfil (batchfil) så här:

mysql db_name < script.sql > output.tab

Från MariaDB 10.4.6 ärmariadb tillgänglig som en symbolisk länk tillmysql.

Från MariaDB 10.5.2 ärmysql den symboliska länken ochmariadb det binära namnet.,

använda mysql

kommandot att användamysql och den allmänna syntaxen är:

mysql <options>

alternativ

mysql stöder följande alternativ:

alternativ beskrivning
-?,--help visa denna hjälp och avsluta.,
-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., Det gör att mysql börjar snabbare, men du måste utfärda rehash-kommandot om du vill använda namnkomplettering. För att slutföra ett namn anger du den första delen och trycker på Tab. Om namnet är entydigt, avslutar mysql det. Annars kan du trycka på Tab igen för att se de möjliga Namnen som börjar med vad du har skrivit hittills. Slutförande sker inte om det inte finns någon standarddatabas.
-A,--no-auto-rehash ingen automatisk uppkok. Man måste använda ”rehash” för att få bord och fältkomplettering., Detta ger en snabbare start av mysql och inaktiverar rehashing på återansluta.
--auto-vertical-output växla automatiskt till vertikalt utgångsläge om resultatet är bredare än terminalbredden.
-B,--batch Skriv ut resultat med fliken som kolumnavskiljare, med varje rad på en ny rad. Med det här alternativet använder mysql inte historikfilen. Batch-läge resulterar i nontabular utdataformat och flyr av specialtecken., Flykten kan inaktiveras genom att använda raw-läge; se beskrivningen för alternativet--raw. (Aktiverar --silent.)
--binary-mode som standard är ASCII ’\0’ inte tillåtet och ’\r\n’ översätts till ’\n’. Den här omkopplaren stänger av båda funktionerna och stänger också av tolkning av alla klientkommandon utom \C och avgränsare, i icke-interaktivt läge (för inmatning piped till mysql eller laddad med kommandot ”källa”). Detta är nödvändigt vid bearbetning utgång från mysqlbinlog som kan innehålla blobbar.,
--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 komprimera all information som skickas mellan klienten och servern om båda stöder komprimering.
--connect-expired-password meddela servern att denna klient är beredd att hantera löpt ut lösenord sandlåda läge även om--batch har angetts. Från MariaDB 10.4.3.
--connect-timeout=num antal sekunder före anslutning timeout. Defaults till noll.,
-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 autentisering klientsidan plugin att använda.
--default-character-set=name Ställ in standardteckenuppsättningen. Ett vanligt problem som kan uppstå när operativsystemet använder utf8 eller en annan multibyte teckenuppsättning är att utdata från mysql-klienten formateras felaktigt, på grund av att MariaDB-klienten använder latin1-teckenuppsättningen som standard. Du kan vanligtvis åtgärda sådana problem genom att använda det här alternativet för att tvinga klienten att använda systemteckenuppsättningen istället., Om den är inställd på auto tas teckenuppsättningen från klientmiljön (LC_CTYPE på Unix).
--defaults-extra-file=file läs den här filen efter att de globala filerna lästs. Måste ges som det första alternativet.
--defaults-file=file läs bara standardalternativ från den givna filen. Måste ges som det första alternativet.
--defaults-group-suffix=suffix förutom de givna grupperna, Läs också grupper med detta suffix.,
--delimiter=name avgränsare som ska användas. Standardvärdet är semikolon-tecknet (”;”).
-e,--execute=name utför uttalande och avsluta. Inaktiverar--force och historikfilen. Standardutmatningsformatet är som det som produceras med --batch.
-f,--force fortsätt även om vi får ett SQL-fel. Ställer --abort-source-on-error till 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., Tillåter att man har mellanslag (inklusive fliktecken och nya linjetecken) mellan funktionsnamn och” (”. Nackdelen är att detta orsakar inbyggda funktioner för att bli reserverade ord.
--init-command=str SQL-kommandot ska köras när du ansluter till MariaDB-servern. Kommer automatiskt att åter exekveras vid återanslutning.
--line-numbers skriv radnummer för fel. (Standard på; Använd --skip-line-numbers för att inaktivera.,)
--local-infile aktivera eller inaktivera lokal kapacitet för INLÄSNINGSDATAFIL. Med inget värde, alternativet möjliggör lokal. Alternativet kan ges som--local-infile=0eller--local-infile=1 för att uttryckligen inaktivera eller aktivera lokal. Att aktivera lokal har ingen effekt om servern inte också stöder den.
--max-allowed-packet=num den maximala paketlängden att skicka till eller ta emot från servern. Standard är 16MB, den maximala 1GB.,
--max-join-size=num Automatisk gräns för rader i en koppling när du använder--safe-updates. Standard är 1000000.
-G,--named-commands aktivera namngivna kommandon. Namngivna kommandon betyder mysql interna kommandon (se nedan) . När den är aktiverad kan de namngivna kommandona användas från vilken rad som helst i frågan, annars bara från den första raden, före en retur. Långformatskommandon är tillåtna, inte bara kortformatskommandon., Till exempel identifieras bådequit och\q. Inaktivera med --disable-named-commands. Det här alternativet är inaktiverat som standard.
--net-buffer-length=num buffertstorleken för TCP / IP och socket kommunikation. Standard 16KB.
-b,--no-beep Stäng av pip på fel.
--no-defaults läs inte standardalternativ från någon alternativ fil. Måste ges som det första alternativet.,
-o,--one-database ignorera uttalanden utom de som inträffar medan standarddatabasen är den som heter på kommandoraden. Denna filtrering är begränsad och baseras endast på användningsangivelser. Detta är användbart för att hoppa över uppdateringar till andra databaser i binärloggen.
--pager personsökare att använda för att visa resultat (Endast Unix). Om du inte tillhandahåller ett alternativ tas standard personsökaren från din ENV-variabel personsökare. Giltiga sökare är mindre, mer, katt, etc. Se interaktiv hjälp (\h) också., Det här alternativet fungerar inte i batch-läge. Inaktivera med --disable-pager. Det här alternativet är inaktiverat som standard.
-p,--password lösenord att använda när du ansluter till servern. Om du använder det korta alternativformuläret (- p) kan du inte ha ett mellanslag mellan alternativet och lösenordet. Om du utelämnar lösenordsvärdet enligt--password eller-p – alternativet på kommandoraden, frågar mysql för en. Att ange ett lösenord på kommandoraden bör betraktas som osäkert., Du kan använda en alternativ fil för att undvika att ge lösenordet på kommandoraden.
--plugin-dir=name katalog för klientsidan plugins.
-P,--port=num portnummer att använda för anslutning eller 0 för standard till, i preferensordning, min.cnf, $MYSQL_TCP_PORT, / etc / tjänster, inbyggd standard (3306).
--print-defaults Skriv ut programargumentlistan och avsluta. Måste ges som det första alternativet.,
--progress-reports få lägesrapporter för långa körkommandon (t.ex. ALTER TABLE). (Standard på; Använd --skip-progress-reports för att inaktivera.)
--prompt=name Ställ in MySQL-prompten till detta värde. Se snabbkommando för alternativ.
--protocol=name protokollet som ska användas för anslutning (TCP, uttag, rör, minne).
-q,--quick cache inte resultat, skriva ut den rad för rad., Detta kan sakta ner servern om utgången är avstängd. Använder inte historikfilen.
-r,--raw för tabellutgång kan ”boxning” runt kolumner skilja ett kolumnvärde från ett annat. För nontabular utdata (t.ex. produceras i batch-läge eller när --batch eller --silent alternativ ges), specialtecken flydde i utdata så att de lätt kan identifieras., Newline, tab, NUL och backslash skrivs som \n, \t, \0 och
. Alternativet--raw inaktiverar detta tecken som flyr.
--reconnect återansluta om anslutningen går förlorad. Det här alternativet är aktiverat som standard. Inaktivera med --disable-reconnectellerskip-reconnect.,
-U,--safe-updates Tillåt endast de uppdaterings-och DELETE-satser som anger vilka rader som ska ändras med hjälp av nyckelvärden. Om du har ställt in det här alternativet i en alternativfil kan du åsidosätta det genom att använda --safe-updates på kommandoraden. Mer information finns i använda alternativet –safe-updates.
--secure-auth vägra klient ansluta till servern om den använder gamla (pre-MySQL4.1.1) Protokoll. Defaults till false (till skillnad från MySQL sedan 5,6, som standard till true).,
--select-limit=num Automatisk gräns för SELECT när du använder –safe-uppdateringar. Standard 1000.
--server-arg=name skicka inbäddad server detta som en parameter.
--shared-memory-base-name=name shared-memory namn att använda för Windows-anslutningar med delat minne till en lokal server (började med –shared-memory alternativet). Skiftlägeskänslig.
--show-warnings visa varningar efter varje uttalande. Gäller för interaktiv och batch-läge.,
--sigint-ignore ignorera SIGINT-signaler (vanligtvis CTRL-C).
-s,--silent var tystare. Detta alternativ kan ges flera gånger för att producera mindre och mindre utdata. Detta alternativ resulterar i nontabular utdataformat och flyr av specialtecken. Flykten kan inaktiveras genom att använda raw-läge; se beskrivningen för alternativet--raw.
-L,--skip-auto-rehash inaktivera automatisk uppkok., 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 inaktiverar att få lägesrapporter för långa kommandon. Se --progress-reports.
-L,--skip-reconnect återansluta inte om anslutningen går förlorad. Se --reconnect.
-S,--socket=name för anslutningar till localhost, Unix socket-filen att använda, eller, på Windows, namnet på det namngivna röret att använda.,
--ssl aktiverar TLS. TLS är också aktiverat även utan att ställa in det här alternativet när vissa andra TLS-alternativ är inställda. Från och med MariaDB 10.2 kommer alternativet --ssl inte att aktivera verifiering av servercertifikatet som standard. För att verifiera servercertifikatet måste användaren ange alternativet--ssl-verify-server-cert.
--ssl-ca=name definierar en sökväg till en PEM-fil som ska innehålla ett eller flera X509-certifikat för betrodda certifikatmyndigheter (CAs) att använda för TLS., Det här alternativet kräver att du använder den absoluta sökvägen, inte en relativ sökväg. Se översikt över säkra anslutningar: certifikatmyndigheter (CAs) för mer information. Det här alternativet innebär alternativet--ssl.
--ssl-capath=name definierar en sökväg till en katalog som innehåller en eller flera PEM-filer som var och en ska innehålla ett X509-certifikat för en betrodd certifikatutfärdare (CA) att använda för TLS. Det här alternativet kräver att du använder den absoluta sökvägen, inte en relativ sökväg., Den katalog som anges av det här alternativet måste köras genom kommandotopenssl rehash. Se översikt över säkra anslutningar: certifikatmyndigheter (CAs) för mer information. Det här alternativet stöds endast om klienten byggdes med OpenSSL eller yaSSL. Om klienten byggdes med GnuTLS eller Schannel, stöds inte det här alternativet. Se TLS-och Kryptografibibliotek som används av MariaDB för mer information om vilka bibliotek som används på vilka plattformar. Det här alternativet innebär alternativet--ssl.,
--ssl-cert=name definierar en sökväg till X509-certifikatfilen som ska användas för TLS. Det här alternativet kräver att du använder den absoluta sökvägen, inte en relativ sökväg. Det här alternativet innebär alternativet--ssl.
--ssl-cipher=name lista över tillåtna chiffer eller chiffer sviter att använda för TLS. Det här alternativet innebär alternativet--ssl.
--ssl-crl=name definierar en sökväg till en PEM-fil som ska innehålla ett eller flera återkallade X509-certifikat som ska användas för TLS., Det här alternativet kräver att du använder den absoluta sökvägen, inte en relativ sökväg. Se översikt över säkra anslutningar: listor över återkallelse av certifikat (CRL) för mer information. Det här alternativet stöds endast om klienten byggdes med OpenSSL eller Schannel. Om klienten byggdes med yaSSL eller GnuTLS, stöds inte det här alternativet. Se TLS-och Kryptografibibliotek som används av MariaDB för mer information om vilka bibliotek som används på vilka plattformar.,
--ssl-crlpath=name definierar en sökväg till en katalog som innehåller en eller flera PEM-filer som var och en ska innehålla ett återkallat X509-certifikat som ska användas för TLS. Det här alternativet kräver att du använder den absoluta sökvägen, inte en relativ sökväg. Den katalog som anges av det här alternativet måste köras genom kommandotopenssl rehash. Se översikt över säkra anslutningar: listor över återkallelse av certifikat (CRL) för mer information. Det här alternativet stöds endast om klienten byggdes med OpenSSL., Om klienten byggdes med yaSSL, GnuTLS eller Schannel, stöds inte det här alternativet. Se TLS-och Kryptografibibliotek som används av MariaDB för mer information om vilka bibliotek som används på vilka plattformar.
--ssl-key=name definierar en sökväg till en privat nyckelfil som ska användas för TLS. Det här alternativet kräver att du använder den absoluta sökvägen, inte en relativ sökväg. Det här alternativet innebär alternativet--ssl.
--ssl-verify-server-cert aktiverar verifiering av servercertifikat. Det här alternativet är inaktiverat som standard.,
-t,--table visa utdata i tabellformat. Detta är standard för interaktiv användning, men kan användas för att producera tabellutmatning i batch-läge.
--tee=name Lägg till allt i outfile. Se interaktiv hjälp (\h) också. Fungerar inte i batch-läge. Inaktivera med --disable-tee. Det här alternativet är inaktiverat som standard.
--tls-version=name det här alternativet accepterar en kommaseparerad lista över TLS-protokollversioner., En TLS-protokollversion aktiveras endast om den finns i den här listan. Alla andra TLS-protokollversioner är inte tillåtna. Se översikt över säkra anslutningar: TLS-Protokollversioner för mer information. Detta alternativ lades till i MariaDB 10.4.6.
-n, --unbuffered spola buffert efter varje fråga.
-u,--user=name användare för inloggning om inte aktuell användare.
-v,--verbose skriv mer., (- v-v-v ger tabellutmatningsformatet).
-V, --version utdata versionsinformation och avsluta.
-E,--vertical Skriv ut utmatningen från en fråga (rader) vertikalt. Använd\G – avgränsaren för att ansöka om ett visst uttalande om det här alternativet inte är aktiverat.
-w, --wait om anslutningen inte kan upprättas, vänta och försök igen istället för att avbryta.,
-X,--xml producera XML-utdata. Se mysqldump-xml alternativet för mer.

option Files

förutom att läsa alternativ från kommandoraden kanmysql också läsa alternativ från option files. Om ett okänt alternativ tillhandahålls till mysql I en alternativfil ignoreras det.

följande alternativ relaterar till hur MariaDB kommandoradsverktyg hanterar alternativfiler., De måste ges som det första argumentet på kommandoraden:

i MariaDB 10.2 och senare, mysql är kopplad till MariaDB Connector/C. MariaDB Connector/C hanterar dock inte parsning av optionsfiler för den här klienten. Det utförs fortfarande av serverns alternativ fil parsningskod. Se MDEV-19035 för mer information.,

Option Groups

mysql läser alternativ från följande option groups från option files:

Group beskrivning
alternativ lästa av mysql, som inkluderar både mariadb-server och MySQL-server.
alternativ lästa avmysql. Finns från och med MariaDB 10.4.6.,
alternativ som läses av alla MariaDB och MySQL-klientprogram, vilket inkluderar både MariaDB och MySQL-klienter. Till exempel mysqldump.
alternativ som läses av alla MariaDB-klientprogram och MariaDB-servern. Detta är användbart för alternativ som uttag och port, vilket är vanligt mellan servern och klienterna.
alternativ läses av alla MariaDB klientprogram.,

så här anger du vilket protokoll som ska användas när du ansluter till mysqld-servern

Följande gäller för alla MySQL-och MariaDB-kommandoradsklienter:

Du kan tvinga vilket protokoll som ska användas för att ansluta tillmysqld – servern genom att geprotocol alternativ ett av följande värden:tcp,socket,pipeeller memory.,

om protocol inte anges, händer följande:

Linux/Unix

  • Om hostname inte anges eller hostname är localhost används sedan Unix-uttag. Oanvända anslutningsparametrar (som port) ignoreras.
  • i andra fall (hostname ges och det är intelocalhost) sedan används en TCPIP-anslutning via alternativetport.

Observera attlocalhost är ett speciellt värde., Att använda 127.0.0.1 är inte samma sak. Den senare kommer att ansluta till mysqld-servern via tcpip.

Windows

  • Omshared-memory-base-name anges ochhostname inte anges ellerhostname ärlocalhost, kommer anslutningen att ske genom delat minne. Oanvända anslutningsparametrar (som port) ignoreras.,
  • Omshared-memory-base-name inte anges ochhostname inte anges ellerhostname ärlocalhost, kommer anslutningen att ske genom windows-namngivna rör.
  • namngivna rör kommer också att användas omlibmysql / libmariadb – klientbiblioteket upptäcker att klienten inte stöder tcpip.
  • i andra fall används en TCPIP-anslutning via alternativetport.,

hur man testar vilket protokoll som används

kommandotstatus visar information om vilket protokoll som används:

MySQL-kommandon

det finns också ett antal kommandon som kan köras inuti klienten. Observera att alla textkommandon måste vara först på rad och sluta med’; ’

Mysql_history-filen

på Unix skriver mysql-klienten ett register över exekverade uttalanden till en historyfile. Som standard heter den här filen .mysql_history och skapas i din hemkatalog., Om du vill ange en annan fil anger du värdet för variabeln MYSQL_HISTFILEenvironment.

den .mysql_history fil bör skyddas med en restriktiv åtkomstläge eftersomkänslig information kan skrivas till den, såsom texten i SQLstatements som innehåller lösenord.

om du inte vill behålla en historikfil, ta först bort .mysql_history ifit finns, och sedan använda någon av följande tekniker:

  • Ställ in mysql_histfile variabeln till/dev / null. Om du vill att den här inställningen ska träda i kraft varje gång du loggar in lägger du inställningen i en av skalets startfiler.,
  • skapa .mysql_history som en symbolisk länk till / dev / null:
shell> ln -s /dev/null $HOME/.mysql_history

du behöver bara göra detta en gång.

prompt Command

kommandot prompt konfigurerar standardprompten\N >. Strängen för att definiera prompten kan innehålla följande speciella sekvenser.

MySQL Tips

det här avsnittet beskriver några tekniker som kan hjälpa dig att användamysql mer effektivt.,

Visa frågeresultat vertikalt

vissa frågeresultat är mycket mer läsbara när de visas vertikalt, istället för i det vanliga horisontella tabellformatet. Frågor kan visas vertikalt genom att avbryta frågan med \G istället för en semikolon. Till exempel är längre textvärden som inkluderar nya linjer ofta mycket enklare att läsa med verticaloutput:

med alternativet –safe-updates

för nybörjare är ett användbart startalternativ --safe-updates (eller--i-am-a-dummy, som har samma effekt)., Det är helpfulfor fall när du kanske har utfärdat en DELETE FROM tbl_name uttalande men glömtWHERE klausul. Normalt tar ett sådant uttalande bort alla raderfrån bordet. Med --safe-updates kan du ta bort rowsonly genom att ange de nyckelvärden som identifierar dem. Detta hjälper till att förhindraolyckor.,

När du använder alternativet--safe-updates utfärdar mysql följande uttalande när den ansluter till MariaDB-servern:

SET sql_safe_updates=1, sql_select_limit=1000, sql_max_join_size=1000000;

satsen har följande effekter:

  • du får inte utföra en uppdatering eller radera uttalande om du inte anger en nyckelbegränsning i WHERE-klausulen eller tillhandahålla en BEGRÄNSNINGSKLAUSUL (eller båda). Till exempel:
UPDATE tbl_name SET not_key_column=val WHERE key_column=val;UPDATE tbl_name SET not_key_column=val LIMIT 1;
  • servern begränsar alla storaSELECT resultat till 1000 rader om inte uttalandet innehåller enLIMIT – klausul.,
  • servern avbryter multiple-tableSELECT uttalanden som förmodligen behöver undersöka mer än 1.000.000 radkombinationer.
mysql --safe-updates --select_limit=500 --max_join_size=10000

inaktivera mysql Auto-återansluta

om mysql-klienten förlorar sin anslutning till servern när du skickar astatement, försöker den omedelbart och automatiskt att återansluta en gång tillserver och skicka uttalandet igen., Men även om mysql lyckas ianslutning har din första anslutning avslutats och alla dina tidigare sessionobjekter och inställningar förloras: tillfälliga tabeller, autokommit-läget, anduser-definierade och sessionsvariabler. Dessutom rullar alla aktuella transaktioner tillbaka.Detta beteende kan vara farligt för dig, som i följande exempel där servern stängdes och startades om mellan första och andra uttalandenutan att du vet det:

användarvariabeln @har förlorats med anslutningen, och efter anslutningen är den odefinierad., Om det är viktigt att mysql slutar medett fel om anslutningen har förlorats kan du starta mysql-klienten med alternativet --skip-reconnect.

Se även

  • felsökning anslutningsproblem
  • Readline kommandon och konfiguration

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *