Isso deve ser muito simples, mas não posso fazer com que funcione pela minha vida.
Eu só estou tentando conectar remotamente ao meu servidor MySQL.
conectando como
mysql -u root -h localhost -p
funciona bem, mas tentando
mysql -u root -h 'any ip address here' -p
falha com o erro
ERROR 1130 (00000): Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server
Na mysql.user
tabela, existe exatamente a mesma entrada para o usuário 'root' com o host 'localhost' como outra com o host '%'.
Estou no limite do meu juízo e não tenho ideia de como proceder. Todas as idéias são bem-vindas.
mysql
mysql-error-1130
concept47
fonte
fonte
Respostas:
Possivelmente uma precaução de segurança. Você pode tentar adicionar uma nova conta de administrador:
Embora, como Pascal e outros tenham observado, não seja uma boa idéia ter um usuário com esse tipo de acesso aberto a qualquer IP. Se você precisar de um usuário administrativo, use o root e deixe-o no host local. Para qualquer outra ação, especifique exatamente os privilégios necessários e limite a acessibilidade do usuário, como Pascal sugeriu abaixo.
Editar:
Do FAQ do MySQL:
fonte
É necessário criar
new MySQL User
e atribuir privilégios, como abaixo,Query prompt
via phpMyAdmin ou prompt de comando:Depois de concluir todas as quatro consultas, ele deve se conectar com
username / password
fonte
@localhost
faria sentido se os privilégios fossem diferentes de alguma forma, mas aqui eles são os mesmos e provavelmente será mais confuso do que qualquer coisa (como alterar senhas em uma que não percebe que a outra existe e que seu login pode estar atingindo essa) )Minha mensagem de erro era semelhante e dizia ' Host XXX não tem permissão para se conectar a este servidor MySQL ', mesmo que eu estivesse usando raiz. Veja como garantir que o root tenha as permissões corretas.
Minha configuração :
Solução
Verificar se há:
Agora acesse o banco de dados MySQL no seu servidor real (digamos que seu endereço remoto seja 123.123.123.123 na porta 3306 como usuário 'root' e desejo alterar as permissões no banco de dados 'dataentry'. Lembre-se de alterar o endereço IP, a porta e o nome do banco de dados às suas configurações)
serviço sudo mysqld restart
fonte
use dataentry
linha (já que a maioria das pessoas não terá esse banco de dados criado).mysql
serviço no finalFLUSH PRIVILEGES
deve permitir que você não precise reiniciar.Você precisa conceder acesso ao usuário a partir de qualquer nome de host.
É assim que você adiciona novos privilégios do phpmyadmin
Saltar Privilégios> Adicionar um novo usuário
Selecione Qualquer host para o nome de usuário desejado
fonte
Basta executar as seguintes etapas:
1a) Conecte-se ao mysql (via localhost)
1b) Se o servidor myslq estiver executando no Kubernetes (K8s) e sendo acessado através de um NodePort
2) Criar usuário
3) Conceder permissões
4) Privilégios de descarga
fonte
A mensagem
*Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server
é uma resposta do servidor MySQL para o cliente MySQL. Observe como está retornando o endereço IP e não o nome do host.Se você estiver tentando se conectar
mysql -h<hostname> -u<somebody> -p
e ele retornar essa mensagem com o endereço IP, o servidor MySQL não poderá fazer uma pesquisa inversa no cliente. Isso é crítico porque é assim que ele mapeia o cliente MySQL para as concessões.Certifique-se de poder executar um
nslookup <mysqlclient>
servidor FROM do MySQL. Se isso não funcionar, não há entrada no servidor DNS. Como alternativa, você pode colocar uma entrada no arquivo HOSTS do servidor MySQL (<ipaddress> <fullyqualifiedhostname> <hostname>
<- A ordem aqui pode ser importante).Uma entrada no arquivo host do meu servidor, permitindo uma pesquisa reversa do cliente MySQL, resolveu esse mesmo problema.
fonte
Maneira simples:
então
feito!
fonte
WHERE CustomerName LIKE 'a%'
Se você modificar as tabelas de concessão manualmente (usando INSERT, UPDATE etc.), deverá executar uma
FLUSH PRIVILEGES
instrução para informar ao servidor para recarregar as tabelas de concessão.PS: eu não recomendaria permitir que nenhum host se conectasse a nenhum usuário (especialmente o
root
uso). Se você estiver usando o mysql para um aplicativo cliente / servidor, prefira um endereço de sub-rede. Se você estiver usando o mysql com um servidor web ou servidor de aplicativos, use IPs específicos.fonte
Basta usar a interface fornecida pela GUI Tool (SQLyog) do MySql:
Clique em Gerenciador de usuários:
Agora, se você deseja conceder acesso PARA QUALQUER OUTRO PC REMOTO, verifique se, assim como na figura abaixo, o valor do campo Host é% (que é o curinga)
fonte
A maioria das respostas aqui mostra a criação de usuários com dois valores de host: um para
localhost
e outro para%
.Observe que, exceto por um usuário local do host incorporado como root, você não precisa fazer isso. Se você simplesmente deseja criar um novo usuário que possa fazer login de qualquer lugar, use
e vai funcionar muito bem. (Como outros já mencionaram, é uma péssima idéia conceder privilégios administrativos a um usuário de qualquer domínio.)
fonte
A maneira mais simples é logar no phpmyadmin com a conta root, ir ao banco de dados mysql e selecionar a tabela do usuário, editar a conta root e no campo host adicionar% wild card. e, em seguida, através dos privilégios ssh flush
fonte
Se esta é uma instalação recente do mysql, antes de alterar qualquer outra coisa, tente simplesmente executar este comando e tente novamente:
Isso por si só corrige o problema para mim no Ubuntu 16.04, mysql 5.7.20. YMMV.
fonte
Basta encontrar uma maneira melhor de fazer isso no painel de controle da hospedagem (estou usando o DirectAdmin aqui)
basta ir ao banco de dados do servidor de destino no seu painel de controle, no meu caso: Gerenciamento MySQL -> selecione seu banco de dados -> você encontrará: "Access Hosts", basta adicionar seu host remoto aqui e ele está funcionando agora!
Eu acho que existe uma opção semelhante em outros painéis C. como o plesk, etc.
Espero que tenha sido útil para você também.
fonte
Bem, nada da resposta acima funcionou para mim. Depois de muita pesquisa, encontrei uma solução. Embora eu esteja atrasado, isso pode ajudar outras pessoas no futuro.
Faça logon no servidor SQL a partir de um terminal
Isso deve resolver o problema de permissão.
Feliz codificação !!
fonte
Bem, o que você pode fazer é abrir o arquivo mysql.cfg e você deve alterar o endereço de ligação para este
endereço de ligação = 127.0.0.1
e reinicie o mysql e você poderá conectar esse servidor a isso.
Olhe isso, você pode ter uma idéia disso.
isso é sol real
fonte
Se você estiver executando no Windows; Uma solução simples é executar o assistente de configuração da instância do servidor MySQL. Está no seu grupo MYSQL no menu Iniciar. Na segunda da última tela, clique na caixa que diz "permitir acesso root a partir de máquinas remotas".
fonte
Se você possui o WAMP Server + Windows 10 e está usando-o para desenvolvimento, clique com o botão direito no ícone Wamp =>
Wamp Settings
=>Check Allow Virtual Hosts other than 127*
fonte
Eu também estava enfrentando o mesmo problema. Eu resolvi em 2 minutos para mim eu apenas lista branca ip através do cpanel
Suponha que você esteja tentando conectar o banco de dados do servidor B do servidor A. Vá para o Servidor B Cpanel-> MySQL Remoto-> digite o Endereço IP do Servidor A e pronto.
fonte
Esta resposta pode ajudar alguém ...
Todas essas respostas não ajudaram, então eu percebi que esqueci de verificar uma coisa crucial .. A porta :)
Eu tenho o mysql rodando em um container docker rodando em uma porta diferente. Eu estava apontando para minha máquina host na porta 3306, na qual eu tenho um servidor mysql em execução. Meu contêiner expõe o servidor na porta 33060. Então, durante todo esse tempo, eu estava olhando para o servidor errado! doh!
fonte
este erro porque nenhuma senha para a raiz e isso talvez tenha ocorrido com você ao tentar se conectar de fora.
fonte
Solução CPANEL
Vá para Cpanel, procure o MySQL Remoto. Adicione o IP no campo de entrada:
Host (% curinga é permitido)
Comente para lembrar qual é o IP. para mim, chega.
fonte
Isso funciona para qualquer futura conexão mysql remota!
Navegue até a linha que começa com a diretiva de endereço de ligação. Deve ficar assim:
Entre no seu mysql como terminal raiz
finalmente, conceda permissão exclusiva à máquina para conectar-se ao banco de dados remotamente com o seguinte comando.
fonte
Com a chance de alguém que esteja enfrentando esse problema o esteja enfrentando no SQLyog, isso aconteceu:
Eu havia me conectado ao banco de dados remoto (de dentro do SQLyog) e trabalhado por algumas horas. Depois, deixei o sistema por alguns minutos e voltei para continuar meu trabalho - ERRO 1130 ! Nada do que tentei funcionou; Reiniciar o SQLyog não foi corrigido. Depois reiniciei o sistema - ele ainda não funcionava.
Então, eu tentei conectar a partir do terminal - funcionou. Em seguida, tentei novamente no SQLyog ... e funcionou. Não posso explicar isso além de "peculiaridade aleatória do computador", mas acho que pode ajudar alguém.
fonte
Se você estiver tentando executar uma consulta mysql sem definir a cadeia de conexão, receberá este erro.
Provavelmente você perdoa definir a cadeia de conexão antes da execução. você já viu isso? (desculpe pelo inglês ruim)
fonte
Problema: o root @ localhost não consegue se conectar a uma nova instalação do mysql-community-server no openSUSE 42.2-1.150.x86_64. O Mysql recusa conexões - ponto final.
Solução:
O arquivo user.MYD tem 0 tamanho (realmente?!). Copiei todos os 3 arquivos de outro sistema em funcionamento.
Consegui fazer login. Depois, era apenas uma questão de reaplicar todos os privilégios de esquema. Além disso, se você desativou o IPv6, reative-o temporariamente para que a conta root @ :: 1 também possa funcionar.
fonte
Este trabalho para o DirectAdmin ;
DirectAdmin
.MySQL Management
.database
.Accesse Host
guia, há um campo. Você deve preencher este campo atéxxx.xx.xxx.xx
.Add Host
.Acabado. Agora você pode acessar esse banco de dados pelo seu
your_database_username
&your_database_password
.Tão simples!
fonte
Todas as respostas aqui não funcionaram no meu caso, portanto, como convidado, isso pode ajudar outros usuários no futuro. Isso também pode ser um problema em nosso código, não apenas no MySQL.
Se você estiver usando
VB.NET
Em vez deste código:
Você precisa seguir
MysqlConn = New MySqlConnection()
na primeira linha. Então seria assimfonte