Por que não consigo me conectar ao MariaDB com Navicat através do túnel SSH?

Por que não consigo me conectar ao MariaDB com Navicat através do túnel SSH?

Sempre usei o Navicat no Windows para gerenciar minhas instâncias MySQL/Percona.

Há poucos dias comprei um novo servidor e instalei o MariaDB 10.3.9.

Posso me conectar a ele sem problemas quando estou em uma sessão SSHd do PuTTY na caixa. mysql -u root -ptraz isso perfeitamente.

Por alguma razão, porém, Navicat gera o erroaccess denied for user 'root'@'::1' (using password: YES)

As configurações do Navicat são as mesmas que sempre usei antes:

Nome do host: localhost Porta: 3306 Nome de usuário MySQL: root Senha MySQL: [senha mysql do root]

Usar túnel SSH: sim Endereço IP: [ip do meu servidor] Nome de usuário SSH: [meu nome] Senha SSH: [minha senha ssh]

Não sei por que funcionaria no SSH quando eu faço isso manualmente, mas não quando o Navicat faz isso, embora presumivelmente esteja fazendo basicamente a mesma coisa. Qual é o '::1'problema, isso aponta para o problema?

Obrigado!

Responder1

Na verdade existemtrêsusuários root sutilmente diferentes no MySQL. (O que é uma verdadeira dor, mas tem sido assim desde sempre e provavelmente não vai mudar...)

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)

O usuário rootcom host localhosté usado apenas ao conectar-se usando o soquete UNIX. Os outros usuários são usados ​​na conexão via soquete TCP, via IPv4 ou IPv6 respectivamente.

Quando você faz o encaminhamento de porta ssh com Navicat, o soquete TCP é usado e, especificamente, o soquete TCP IPv6 (já que o IPv6 é preferível ao IPv4). Portanto, esse usuário é aquele que está sendo autenticado.

A maioria de nós lida com isso certificando-se de que a senha seja definida da mesma forma para todas as três linhas.

informação relacionada