Estou tentando quebrar otarefade fazer a depuração da AWS no rubymine em pedaços menores. Gostaria de me conectar ao servidor mysql em execução na AWS. Então eu fiz o seguinte:
primeiro:Estabeleça um túnel ssh para encaminhar todas as solicitações de localhost da porta 3307 para a porta 3306 na AWS:
ssh -l ubuntu -i 'path/to/private/key/privateKey.cer' -L 3307:aws.port:3306 aws.port -N -v -v
segundo:conecte-se ao mysql na porta 3307
mysql -h 127.0.0.1 -P 3307 -u root -p
problema: ele falha com o seguinte erro na minha máquina host:
ERROR 1130 (HY000): Host '178.135.138.61' is not allowed to connect to this MySQL server
e o logon na AWS gera isto:
debug1: Connection to port 3307 forwarding to 54.193.1.19 port 3306 requested.
debug2: fd 7 setting TCP_NODELAY
debug1: channel 2: new [direct-tcpip]
channel 2: open failed: connect failed: Connection refused
debug2: channel 2: zombie
debug2: channel 2: garbage collecting
debug1: channel 2: free: direct-tcpip: listening port 3307 for 54.193.1.19 port 3306, connect from 127.0.0.1 port 64938, nchannels 3
notas:
- Certifiquei-me de que o grupo de segurança do servidor AWS ao qual estou me conectando permite
ssh
conexões na porta 22 - Certifiquei-me de que
/etc/hosts.deny
na AWS não houvesse localhost ou 127.0.0.1 listado.
Ideias?
Responder1
A mensagem de erro
ERROR 1130 (HY000): Host '178.135.138.61' is not allowed to connect to this MySQL server
vem do MySQL. Para permitir o acesso remoto ao usuário root, você precisa permitir isso especificamente para o banco de dados específico, no servidor mysql
mysql -u root -p
mysql> grant all privileges on somedatabase.* to 'root'@'178.135.138.61' identified by 'somepassword';
mysql> flush privileges;
Isso permitirá que o nome de usuário root se conecte ao mysql de 178.135.138.61 com todos os privilégios em algum banco de dados.
Você provavelmente deveria ler oDocumentação de segurança do MySQLem particular oControle de acessoeGerenciamento de usuárioscapítulos.