Acabei de começar a experimentar Go e estou tentando reimplementar um servidor de API escrito em nó com ele.
Eu encontrei um obstáculo com a biblioteca MySQL que não consigo resolver. Estou tentando abrir uma conexão com uma instância AWS RDS e tenho a string de conexão:
db, err := sql.Open("mysql", "username:[email protected]:3306/db_name")
Com isso, recebo este erro:
default addr for network 'dbinstance.eu-west-1.rds.amazonaws.com:3306' unknown
Eu tentei envolver o uri em um tcp(dbinstance.eu-west-1.rds.amazonaws.com:3306)
dentro da string, e então recebo:
Error 1045: Access denied for user 'mysql'@'****.2-4.cable.virginm.net' (using password: YES)
(o * * é alguma parte do endereço de rede que não estou colocando aqui)
Basicamente, esse é o meu provedor de cabo - parece que está parando no primeiro salto ao longo do caminho.
Se eu mudar para tcp(ipaddress)
ele parece se conectar.
A versão do nó do meu aplicativo funciona bem com a conexão de string
* Versão do driver (ou git SHA): Versão 1.2
* Versão Go: versão go go1.6 windows / amd64
* Versão do servidor: MySQL 5.6.23
* Sistema operacional de servidor: Amazon RDS
db, err := sql.Open("mysql", "username:password@tcp(dbinstance.eu-west-1.rds.amazonaws.com:3306)/db_name")
deve estar correto.
Error 1045: Access denied for user 'mysql'@'****.2-4.cable.virginm.net' (using password: YES)
é uma resposta do servidor MySQL. Parece que seu nome de usuário ou senha estão errados ou o servidor não aceita conexões de seu IP. Funciona com as mesmas credenciais e do mesmo cliente com outras bibliotecas como a do node ou a c lib oficial?
Esqueça, você já escreveu que funciona se você usar o endereço IP em vez do domínio.
O DSN também é analisado corretamente: User:username Passwd:password Net:tcp Addr:dbinstance.eu-west-1.rds.amazonaws.com:3306 DBName:db_name
.
Acho que o erro deve estar no lado do servidor. O driver parece se conectar bem.
Se o problema persistir, por favor responda
Não tenho certeza se este é o lugar certo, mas isso ainda é um problema para mim. Tentei conectar com o url e o endereço ip com o mesmo resultado.
Erro 1045: Acesso negado ao usuário '
O driver não é o problema e a configuração do seu URL_STRING está correta (com protocolo TCP).
Exemplo de configuração correta:
db, err := sql.Open("mysql", "username:password@tcp(dbinstance.eu-west-1.rds.amazonaws.com:3306)/db_name")
Talvez o seu problema esteja na configuração do seu banco de dados (mysql / mariadb). Link de anexo para a referência deste problema: MYSQL ERROR 1045
Eu tive o mesmo problema ao conectar-se ao RDS. adicionar tcp () no protocolo funcionou. Obrigado
só tem que adicionar o tipo de rede, o que significa usuário: pass @ net (url) / db
Comentários muito úteis
db, err := sql.Open("mysql", "username:password@tcp(dbinstance.eu-west-1.rds.amazonaws.com:3306)/db_name")
deve estar correto.Error 1045: Access denied for user 'mysql'@'****.2-4.cable.virginm.net' (using password: YES)
é uma resposta do servidor MySQL. Parece que seu nome de usuário ou senha estão errados ou o servidor não aceita conexões de seu IP. Funciona com as mesmas credenciais e do mesmo cliente com outras bibliotecas como a do node ou a c lib oficial?