Por que eu continuo recebendo o erro 1042 do mysql?

0

Estou criando uma API da Web do ASP.NET em um VPS do Linux, usando o Apache e o mod_mono. Eu tenho tudo configurado e demonstrei com sucesso que as rotas da web api estão funcionando.

Minhas alterações locais mais recentes adicionam integração com um banco de dados mysql. Na minha máquina de desenvolvimento, isso funciona perfeitamente. No entanto, sempre que eu carrego a API publicada, a conexão com o banco de dados falha. Eu fiz alguma escavação e percebi que a exceção sendo lançada relatórios de erro 1042 - Não é possível obter o nome do host para o seu endereço.

Aqui está minha string de conexão:

SERVER={0};DATABASE={1};UID={2};PASSWORD={3}; (o servidor é localhost e outros valores são preenchidos apropriadamente).

O que estou fazendo de errado? Como posso obtê-lo para se conectar ao mysql? Não tenho problemas para me conectar usando a mesma conta que estou tentando usar quando estou ssh'ed na minha conta de administrador ...

EDITAR:

Eu tentei colocar skip-name-resolve em /var/mysql/my.cnf, mas não fez nada. Eu também tentei liberar hosts no mysql.

    
por Brian Gradin 07.08.2015 / 10:46

1 resposta

0

Sua API não parece resolver adequadamente a parte "localhost" da cadeia de conexão do banco de dados. Se você substituir "localhost" pelo endereço IP, ele poderá se conectar ao servidor pela rede, ignorando a parte de resolução.

No entanto, seu servidor MySQL precisa permitir o acesso pela rede. Essa é uma configuração não padrão, para a qual uma ampla ajuda está disponível em outro lugar neste site.

Lembre-se de que você codificou o endereço IP no software da API. Certifique-se de que o software continue funcionando mesmo depois de uma mudança de rede, por exemplo substituindo o endereço IP por um nome de host adequado.

    
por Jos 07.08.2015 / 14:46