Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Melden Sie sich mit unix_socket beim MySQL-Konto an

Um eine Verbindung zu einem Remote-MySQL-Server herzustellen, sei es direkt oder über einen SSH-Tunnel, können Sie den unix_socket nicht verwenden Authentifizierungs-Plugin, das lokalen Zugriff auf die Unix-Socket-Datei auf dem DB-Server-Betriebssystem erfordert.

Der unix_socket Das Plugin wird mithilfe eines speziellen Dateityps (Unix-Socket) implementiert, der eine Form der Interprozesskommunikation (IPC) in *nix-Systemen darstellt. Es ermöglicht Ihrem mysql-CLI-Client, mit der Datenbank zu kommunizieren, und es erfordert lokalen Zugriff auf die Socket-Datei (z. B.:/tmp/mysql.sock ). Wenn Sie sich mit dem Socket verbinden, wird der unix_socket plugin (serverseitig) erhält die UID des Benutzers, der mit dem Socket verbunden ist (d. h. Ihr Benutzer) und authentifiziert Sie automatisch, ohne dass ein Passwort erforderlich ist.

Mögliche Lösungen:

Wenn Sie mit einem Nicht-Root-Benutzer eine Verbindung zu Maschine B herstellen, müssen Sie einen DB-Benutzer mit dem gleichen Namen wie der Name Ihres Nicht-Root-Betriebssystem-Benutzerkontos erstellen.

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

Jetzt können Sie mit Ihrem Benutzerkonto und dem mysql-CLI-Client eine Verbindung zu mysql herstellen, indem Sie einfach Folgendes ausführen:

youruser:~$ mysql

Wenn Sie sich mit dem Root-Benutzer mit der Datenbank verbinden möchten, benötigen Sie entweder Zugriff auf das Root-Konto oder eine sudo-Richtlinie, die Ihrem Benutzer zugeordnet ist, um den mysql-Client auszuführen.

youruser:~$ sudo mysql

Sie können natürlich den regulären authentifizierten Netzwerkzugriff auf Ihr DB-Root-Konto aktivieren. Dies kann zu Sicherheitsproblemen führen, daher ist es besser, es auf localhost:

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

Jetzt können Sie sich von jedem lokalen Betriebssystemkonto aus anmelden, wenn Sie Ihr Login authentifizieren können:

youruser:~$ mysql -u root -p