Warum kann ich mit Navicat keine Verbindung über einen SSH-Tunnel zu MariaDB herstellen?

Warum kann ich mit Navicat keine Verbindung über einen SSH-Tunnel zu MariaDB herstellen?

Ich habe unter Windows immer Navicat verwendet, um meine MySQL/Percona-Instanzen zu verwalten.

Ich habe mir vor ein paar Tagen einen neuen Server gekauft und MariaDB 10.3.9 installiert.

Ich kann eine Verbindung problemlos herstellen, wenn ich während einer Putty-Sitzung per SSH auf die Box zugreife. mysql -u root -pDas bringt es perfekt zum Laufen.

Aus irgendeinem Grund gibt Navicat jedoch den Fehler ausaccess denied for user 'root'@'::1' (using password: YES)

Die Navicat-Einstellungen sind dieselben, die ich schon immer verwendet habe:

Hostname: localhost Port: 3306 Mysql-Benutzername: root Mysql-Passwort: [Mysql-Passwort von root]

SSH-Tunnel verwenden: ja IP-Adresse: [IP meines Servers] SSH-Benutzername: [mein Name] SSH-Passwort: [mein SSH-Passwort]

Ich bin mir nicht sicher, warum es über SSH funktioniert, wenn ich es manuell mache, aber nicht, wenn Navicat es macht, obwohl es vermutlich weitgehend dasselbe macht. Worum geht es '::1'in diesem Teil, weist das auf das Problem hin?

Danke!

Antwort1

Eigentlich gibt esdreileicht unterschiedliche Root-Benutzer in MySQL. (Das ist wirklich ärgerlich, aber es ist schon immer so gewesen und wird sich wahrscheinlich nicht ändern ...)

MariaDB [(none)]> select Host, User from mysql.user where User = 'root';
+-----------+------+
| Host      | User |
+-----------+------+
| 127.0.0.1 | root |
| ::1       | root |
| localhost | root |
+-----------+------+
3 rows in set (0.06 sec)

Der Benutzer rootmit Host localhostwird nur bei Verbindungen über den UNIX-Socket verwendet. Die anderen Benutzer werden bei Verbindungen über den TCP-Socket bzw. über IPv4 oder IPv6 verwendet.

Wenn Sie Ihre SSH-Portweiterleitung mit Navicat durchführen, wird der TCP-Socket verwendet, und zwar der IPv6-TCP-Socket (da IPv6 gegenüber IPv4 bevorzugt wird). Dieser Benutzer ist also derjenige, gegenüber dem die Authentifizierung erfolgt.

Die meisten von uns gehen damit um, indem sie sicherstellen, dass das Passwort für alle drei Zeilen gleich ist.

verwandte Informationen