sql >> Database teknologi >  >> RDS >> Mysql

Log ind på MySQL-konto med unix_socket

For at oprette forbindelse til en ekstern MySQL-server, det være sig direkte eller gennem en SSH-tunnel, kan du ikke bruge unix_socket autentificeringsplugin, som kræver lokal adgang til unix-socket-filen på DB Server-operativsystemet.

unix_socket plugin er implementeret ved hjælp af en speciel type fil (unix-socket), som er en form for inter-process communication (IPC) i *nix-systemer. Det giver din mysql CLI-klient mulighed for at tale med DB'en, og det kræver lokal adgang til socket-filen (dvs.:/tmp/mysql.sock ). Når du forbinder til stikket, vil unix_socket plugin (server-side) vil få brugerens uid, der er tilsluttet til stikkontakten (dvs. din bruger) og vil automatisk godkende dig uden behov for en adgangskode.

Mulige løsninger:

Hvis du opretter forbindelse til Machine B med en ikke-root-bruger, skal du oprette en DB-bruger med samme navn som dit ikke-root-operativsystembrugerkontonavn.

GRANT ALL PRIVILEGES ON *.* TO 'youruser'@'localhost' IDENTIFIED VIA unix_socket;

Nu kan du oprette forbindelse til mysql ved hjælp af din brugerkonto og mysql CLI-klienten ved blot at køre:

youruser:~$ mysql

Hvis du vil oprette forbindelse til DB'en med root-brugeren, skal du enten have adgang til root-kontoen eller en sudo-politik knyttet til din bruger for at køre mysql-klienten.

youruser:~$ sudo mysql

Du kan naturligvis aktivere almindelig autentificeret netværksadgang til din DB root-konto. Dette kan føre til sikkerhedsproblemer, så det er bedre at begrænse det til localhost:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'xxx' WITH GRANT OPTION;

Nu kan du logge ind fra en hvilken som helst lokal operativsystemkonto, hvis du kan godkende dit login:

youruser:~$ mysql -u root -p



  1. Accelereret databasegendannelse i SQL Server 2019

  2. Sådan opretter du befolket MySQL Docker Image på byggetid

  3. Sådan opretter du bruger i MySQL

  4. Fjernelse af vognretur i Mysql DB