MySQL:: MySQL 8.0 referensmanual:: 4.2.4 anslutning till MySQL-servern med hjälp av kommandoalternativ

4.2.4 anslutning till MySQL-servern med hjälp av kommandoalternativ

i det här avsnittet beskrivs användning av kommandoradsalternativ för att ange hur man upprättar anslutningar till MySQL-servern, för klienter som mysql eller mysqldump. För information om att upprätta anslutningar med URI-liknande anslutningssträngar eller nyckelvärdespar, för klienter som MySQL Shell, se avsnitt 4.2.5, ”ansluta till servern med URI-liknande strängar eller nyckelvärdespar”. För ytterligare information om du inte kan ansluta, se avsnitt 6.2.21,”felsökning av problem med att ansluta till MySQL”.

för att ett klientprogram ska kunna ansluta till MySQL-servern måste det använda rätt anslutningsparametrar, till exempel namnet på värden där servern körs och användarnamnet och lösenordet för ditt MySQL-konto. Varje anslutningsparameter har ett standardvärde, men du kan åsidosätta standardvärden vid behov med hjälp av programalternativ som anges antingen på kommandoraden eller i en alternativfil.

exemplen här använder MySQL-klientprogrammet, men principerna gäller för andra klienter som mysqldump, mysqladmin eller mysqlshow.

detta kommando anropar mysql utan att ange några explicita anslutningsparametrar:

mysql

eftersom det inte finns några parameteralternativ gäller standardvärdena:

  • standardvärddatornamnet är localhost. På Unix har detta en speciell betydelse, som beskrivs senare.

  • standardanvändarnamnet är ODBC I Windows eller ditt Unix-inloggningsnamn på Unix.

  • Inget lösenord skickas eftersom varken --password eller -p ges.

  • för mysql tas det första nonoption-argumentet som namnet på standarddatabasen. Eftersom det inte finns något sådant argument väljer mysql ingen standarddatabas.

för att ange värdnamn och användarnamn uttryckligen, samt ett lösenord, ange lämpliga alternativ på kommandoraden. Om du vill välja en standarddatabas lägger du till ett argument för databasnamn. Exempel:

mysql --host=localhost --user=myname --password=password mydbmysql -h localhost -u myname -ppassword mydb

för lösenordsalternativ är lösenordsvärdet valfritt:

  • Om du använder ett --password eller -p alternativ och ange ett lösenordsvärde, det får inte finnas något mellanslag mellan --password= eller -p och lösenordet som följer det.

  • Om du använder --password eller -p men inte anger ett lösenordsvärde, uppmanar klientprogrammet dig att ange lösenordet. Lösenordet visas inte när du anger det. Detta är säkrare än att ge lösenordet på kommandoraden, vilket kan göra det möjligt för andra användare på ditt system att se lösenordsraden genom att utföra ett kommando som ps. Se avsnitt 6.1.2.1, ”riktlinjer för slutanvändare för lösenordssäkerhet”.

  • för att uttryckligen ange att det inte finns något lösenord och att klientprogrammet inte ska fråga efter ett, använd alternativet --skip-password.

som just nämnts, inklusive lösenordsvärdet på kommandoraden är en säkerhetsrisk. För att undvika denna risk, ange alternativet --password eller -p utan något följande lösenordsvärde:

mysql --host=localhost --user=myname --password mydbmysql -h localhost -u myname -p mydb

När alternativet --password eller -p ges utan lösenordsvärde skriver klientprogrammet ut en fråga och väntar på att du anger lösenordet. (I dessa exempel tolkas inte mydb som ett lösenord eftersom det separeras från föregående lösenordsalternativ med ett mellanslag.)

på vissa system begränsar biblioteksrutinen som MySQL använder för att be om ett lösenord automatiskt lösenordet till åtta tecken. Denna begränsning är en egenskap hos systembiblioteket, inte MySQL. Internt har MySQL ingen gräns för lösenordets längd. För att kringgå begränsningen för system som påverkas av det, ange ditt lösenord i en alternativfil (se avsnitt 4.2.2.2, ”använda Alternativfiler”). En annan lösning är att ändra ditt MySQL-lösenord till ett värde som har åtta eller färre tecken, men det har nackdelen att kortare lösenord tenderar att vara mindre säkra.

klientprogram bestämmer vilken typ av anslutning som ska göras enligt följande:

  • om värden inte är specificerad eller är localhost, uppstår en anslutning till den lokala värden:

    • i Windows ansluter klienten med delat minne, om servern inte är ansluten till den började med shared_memory systemvariabeln aktiverad för att stödja anslutningar med delat minne.

    • på Unix behandlar MySQL-program värdnamnet localhost speciellt, på ett sätt som sannolikt skiljer sig från vad du förväntar dig jämfört med andra nätverksbaserade program: klienten ansluter med en Unix-socket-fil. Alternativet --socket eller MYSQL_UNIX_PORT miljövariabel kan användas för att ange socket-namnet.

  • i Windows, om host är . (period), eller om TCP/IP inte är aktiverat och --socket inte är angivet eller om värden är tom, ansluts klienten med en namngivna rör, om servern startades med named_pipe systemvariabeln aktiverad för att stödja namngivna röranslutningar. Om namngivna röranslutningar inte stöds eller om användaren som gör anslutningen inte är medlem i Windows-gruppen som anges av named_pipe_full_access_group systemvariabeln uppstår ett fel.

  • annars använder anslutningen TCP / IP.

alternativet--protocol gör att du kan använda ett visst transportprotokoll även om andra alternativ normalt resulterar i användning av ett annat protokoll. Det vill säga--protocol anger transportprotokollet uttryckligen och åsidosätter de föregående reglerna, även förlocalhost.

endast anslutningsalternativ som är relevanta för det valda transportprotokollet används eller kontrolleras. Andra anslutningsalternativ ignoreras. Till exempel, med --host=localhost på Unix försöker klienten ansluta till den lokala servern med en Unix-socket-fil, även om alternativet --port eller -P ges för att ange ett TCP/IP-portnummer.

för att säkerställa att klienten gör en TCP/IP-anslutning till den lokala servern, använd --host eller -h för att ange ett värdnamnsvärde för 127.0.0.1 (istället för localhost), eller IP-adressen eller namnet på den lokala servern. Du kan också ange transportprotokollet uttryckligen, även förlocalhost, genom att använda alternativet--protocol=TCP. Exempel:

mysql --host=127.0.0.1mysql --protocol=TCP

om servern är konfigurerad för att acceptera IPv6-anslutningar kan klienter ansluta till den lokala servern via IPv6 med --host=::1. Se Avsnitt 5.1.13, ”IPv6-Stöd”.

i Windows, för att tvinga en MySQL-klient att använda en namngiven röranslutning, ange --pipe eller --protocol=PIPE alternativet, eller ange . (period) som värdnamn. Om servern inte startades mednamed_pipe systemvariabeln aktiverad för att stödja namngivna röranslutningar eller om användaren som gör anslutningen inte är medlem i Windows-gruppen som anges avnamed_pipe_full_access_group systemvariabeln, uppstår ett fel. Använd alternativet --socket för att ange namnet på röret om du inte vill använda standardrörets namn.

anslutningar till fjärrservrar använder TCP / IP. Detta kommando ansluter till servern som körs på remote.example.com med standardportnumret (3306):

mysql --host=remote.example.com

för att ange ett portnummer explicit, använd --port eller -P alternativet:

mysql --host=remote.example.com --port=13306

Du kan ange ett portnummer för anslutningar till en lokal server också. Som tidigare angivits använder dock anslutningar till localhost på Unix en socket-fil som standard, så om du inte tvingar en TCP/IP-anslutning som tidigare beskrivits ignoreras alla alternativ som anger ett portnummer.

för detta kommando använder programmet en socket-fil på Unix och alternativet--port ignoreras:

mysql --port=13306 --host=localhost

för att få portnumret att användas, tvinga en TCP/IP-anslutning. Anropa till exempel programmet på något av följande sätt:

mysql --port=13306 --host=127.0.0.1mysql --port=13306 --protocol=TCP

För ytterligare information om alternativ som styr hur klientprogram skapar anslutningar till servern, se avsnitt 4.2.3, ”kommandoalternativ för anslutning till servern”.

det är möjligt att ange anslutningsparametrar utan att ange dem på kommandoraden varje gång du anropar ett klientprogram:

  • Ange anslutningsparametrarna i avsnittet I en alternativfil. Den relevanta delen av filen kan se ut så här:

    host=host_nameuser=user_namepassword=password

    För mer information, se avsnitt 4.2.2.2, ”använda Alternativfiler”.

  • vissa anslutningsparametrar kan anges med hjälp av miljövariabler. Exempel:

    • för att ange värden för mysql, använd MYSQL_HOST.

    • i Windows, för att ange MySQL-användarnamnet, använd USER.

    för en lista över miljövariabler som stöds, se avsnitt 4.9,”miljövariabler”.



Lämna ett svar

Din e-postadress kommer inte publiceras.