Introduktion
En av de första sakerna du behöver tänka på när du arbetar med en MySQL-databas är hur du ansluter och interagerar med databasinstansen. Detta kräver samordning mellan databasklienten – den komponent du använder för att interagera med databasen och databasservern – den faktiska MySQL-instansen som lagrar, organiserar och ger åtkomst till dina data.
På grund av detta måste du förstå hur du ansluter som klient genom att tillhandahålla den information som krävs för autentisering. I den här guiden kommer vi att täcka hur du ansluter till en MySQL-databas med den ursprungliga mysql
kommandoradsklient — ett av de vanligaste och mest användbara sätten att interagera med en databasinstans.
I en kompletterande guide kan du ta reda på hur du konfigurerar MySQL:s autentisering för att möta ditt projekts behov. Överväg att läsa båda guiderna för en mer komplett bild av hur autentisering fungerar i MySQL.
Grundläggande information om mysql
klient
mysql
klient är standardkommandoradsklienten och SQL-skalet för MySQL. Du kan använda den interaktivt för att skapa en skalsession med din server eller så kan du mata den med SQL-filer för att köras utan användarinteraktion. Det är särskilt användbart när du implementerar konfigurationsalternativ och ställer in din miljö. Interaktiv utforskning och ad hoc-förfrågningar är också bra när du utvecklar åtkomstmönstren som dina program kommer att använda.
Sättet att ansluta till och autentisera med en MySQL-server beror på din servers konfiguration. I följande avsnitt kommer vi att gå över några av de grundläggande anslutningsalternativen. För tydlighetens skull kommer vi att skilja mellan lokala och fjärranslutna anslutningar:
- lokal anslutning :en anslutning där klienten och MySQL-instansen finns på samma server
- fjärranslutning :där klienten ansluter till en nätverkstillgänglig MySQL-instans som körs på en annan dator
Låt oss börja med att ansluta till en databas från samma dator.
Ansluter till en lokal databas med mysql
Utan några argument, mysql
kommandot försöker ansluta till en Unix-socketfil för att komma åt en lokal databas. Vanligtvis bestäms standardplatsen för socketfilen antingen av en konfigurationsfil eller av ett kompilerat standardvärde. Som standard används ditt operativsystems användarnamn för att försöka ansluta till databasen.
Så om din nuvarande användare är en giltig MySQL-användare i din lokala databas, kan du försöka ansluta genom att skriva:
mysql
Om kontot finns och inte kräver ett lösenord eller om MySQL-socket-autentisering är konfigurerad för kontot, kommer du att loggas in automatiskt. Om användarnamnet inte finns i MySQL eller om ett lösenord eller ytterligare autentisering krävs, kommer kommandot att misslyckas.
För att kontrollera hur mysql
försöker logga in på databasen, skicka ytterligare information med ditt kommando med kommandoradsalternativ:
--user=
eller-u
:anger vilken MySQL-användare som ska autentiseras med.--lösenord
eller-p
:säger åt MySQL att fråga efter ett lösenord för MySQL-användaren.--host=127.0.0.1
eller-h 127.0.0.1
:berättarmysql
för att ansluta till den lokala MySQL-instansen med hjälp av den lokala TCP loopback-adressen istället för en Unix-socket. Detta är viktigt att använda om din MySQL-server inte är konfigurerad för att använda Unix-sockets.
Obs! MySQL tolkar 127.0.0.1
annorlunda än localhost
. Anger 127.0.0.1
indikerar att du vill använda en TCP-anslutning, medan localhost
kommer att få MySQL att försöka använda en Unix-socket för att ansluta till den lokala databasen.
Så, om du behöver logga in som MySQL-användare eva
med ett lösenord, men fortfarande använder Unix-uttaget för att ansluta, kan du skriva:
mysql --user=eva --password
mysql
klienten kommer att fråga dig om ett lösenord för kontot.
Om du vill försöka logga in med samma användarnamn men över en TCP-anslutning till den lokala databasen, skriver du istället:
mysql --user=eva --password --host=127.0.0.1
Standardautentiseringskonfigurationen såväl som det initiala administrativa användarnamnet och lösenordet kan skilja sig beroende på hur MySQL installerades. Många metoder ställer dock in MySQL för att använda en Unix-socket och inkluderar en standard root
användare som administrativt konto.
I dessa fall kan du logga in i databasen som root
användare genom att skriva:
mysql --user=root --password
Du kommer att bli ombedd att ange det administrativa lösenordet som valdes eller genererades under installationen för att fortsätta.
Alla dessa metoder låter dig ansluta till en lokal MySQL-databas.
Ansluta till en fjärrdatabas
Om du vill ansluta till en fjärrbaserad MySQL-databas måste du ange nätverksplatsen för fjärrvärden och eventuellt lägga till ytterligare information.
De tillgängliga autentiseringsmetoderna varierar beroende på MySQL-instansens konfiguration. Det vanligaste är dock att du måste ange följande parametrar för att autentisera:
Alternativ | Beskrivning |
---|---|
--host= eller -h | Nätverksvärdnamnet eller IP-adressen för MySQL-servern. |
--port= eller -P | Nätverksporten som MySQL-servern körs på. Om servern använder port 3306, standard MySQL-port, kan denna parameter utelämnas. |
--user= eller -u | Databasanvändarnamnet du vill ansluta som. Om det inte anges kommer ditt operativsystems användarnamn att användas. |
--lösenord eller -p | Ange att du vill ange ett lösenord för det angivna kontot. mysql klienten kommer att fråga dig om lösenordet när du trycker på Retur . |
MySQL-databas | MySQL-databasnamnet som du vill komma åt. Om inte specificerat, mysql kommer att ansluta till servern utan att ansluta till en specifik databas. |
Det grundläggande formatet för att ansluta till en fjärrdatabas ser vanligtvis ut ungefär så här:
mysql --host=<hostname> --port=<port> --user=<user> --password <database>
Efter att ha tryckt på Retur , mysql
klienten kommer att be dig om lösenordet. Om du autentiseras framgångsrikt kommer en ny interaktiv MySQL-session att startas.
Som ett exempel kan vi tänka oss att vilja ansluta till en databas med följande krav:
- värdnamn:
myhost
- port:1234
- databas:
applicationdb
- användarnamn:
myapplicationuser
- lösenord:
mypass
Ringer mysql
Med följande alternativ kan du autentisera:
mysql --host=myhost --port=1234 --user=myapplicationuser --password applicationdb
När du trycker på enter kommer du att få ett lösenord där du kan autentisera med mypass
.
Justera en MySQL-servers autentiseringskonfiguration
Om du vill ändra reglerna som dikterar hur användare kan autentisera till dina MySQL-instanser, kan du göra det genom att ändra din servers konfiguration. Du kan ta reda på hur du ändrar MySQL:s autentiseringskonfiguration i den här artikeln.
Slutsats
I den här guiden täckte vi MySQL-autentisering från klientsidan. Vi visade hur man använder mysql
kommandoradsklient för att ansluta till både lokala och fjärrbaserade databasinstanser.
Att veta hur man ansluter till olika MySQL-instanser är ett av de första stegen du behöver förstå när du börjar arbeta med databassystemet. Du kan köra en lokal MySQL-instans för utveckling som inte behöver någon speciell autentisering, men dina databaser i iscensättning och produktion kommer nästan säkert att kräva autentisering. Att kunna autentisera i båda fallen gör att du kan arbeta bra i olika miljöer.