A mensagem de erro indica que você não está se conectando ao MySQL remoto, mas ao localhost. Certifique-se de conectar-se usando a opção -h
ao servidor remoto.
mysql -u username -h DB_SERVER_IP
Estou configurando uma conexão remota com um servidor MySQL, mas não importa o que eu tente, estou recebendo o erro de acesso negado do servidor remoto.
Eu adicionei o usuário por:
CREATE USER 'username'@'REMOTE_IP_ADDRESS' IDENTIFIED BY '***';
Então eu dei permissões:
GRANT ALL PRIVILEGES ON databasename.* to username@REMOTE_IP_ADDRESS;
Minha tabela de usuários no servidor MySQL mostra (entre outras coisas):
+---------------+--------------------+
| user | host |
+---------------+--------------------+
| username | REMOTE_IP_ADDRESS |
+---------------+--------------------+
Se eu mostrar concessões para o usuário, obtenho:
+------------------------------------------------------------------------------------+
| Grants for username@REMOTE_IP_ADDRESS
+------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'username'@'REMOTE_IP_ADDRESS' IDENTIFIED BY PASSWORD '***'
| GRANT ALL PRIVILEGES ON 'databasename'.* TO 'username'@'REMOTE_IP_ADDRESS'
+------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
No servidor remoto, eu uso:
mysql -u username -p DB_SERVER_IP
e receba a mensagem de erro:
ERROR 1045 (28000): Access denied for user 'username'@'localhost' (using password: YES)
Eu fiz "privilégios de flush", mas eu ainda não consigo me conectar - notei que o erro é username @ localhost e eu não tenho nenhuma permissão configurada para username @ localhost, mas eu nunca tive que fazer isso antes. Eu tenho algumas outras contas remotas no mesmo servidor e nenhuma delas tem @localhost, pois elas só se conectam localmente.
O que estou perdendo? Eu esqueci de fazer algo ou o que mais posso verificar?
Por simplicidade, digamos assim:
Computador A = Mantém o banco de dados MySQL. IPv4 = 192.168.11.1
Computador B = Tem um programa Eclipse que deseja se conectar ao Computador A e fazer coisas com os esquemas. Ipv4 = 192.168.22.2
Faça o seguinte no computador A:
Parece que você está tentando criar um novo usuário com o nome 'username'@'192.168.22.2', mas um usuário diferente com o nome 'username' @ 'localhost' está atrapalhando / recebendo precedência.
Faça este comando para ver os usuários:
SELECT user,host FROM mysql.user;
Você deve ver duas entradas:
1) usuário = nome de usuário, host = localhost
2) user = username, host = 192.168.22.2
Então, faça estes comandos:
DROP User 'username'@'localhost';
DROP User 'username'@'192.168.22.2';
Note que, se vir o utilizador 'username' @ '%', também elimine / apague essa linha.
Reinicie o MySQL Workbench
Em seguida, faça seus comandos originais novamente:
CREATE USER 'username'@'192.168.22.2' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON databasename.* TO 'username'@'192.168.22.2';
Eu não entendo porque você usou "***" como sua senha, então eu a substitui por "senha".
Em seguida, vá para o Computador B e abra o seu prompt de comando / terminal. Digite o seguinte e você deve estar conectado ao Computador A. Se não conseguir se conectar, verifique as regras de entrada do firewall do Computador A e verifique se o Serviço MySQL está sendo executado no Computador A.
mysql --host=192.168.11.1 --user=username --password=password
(Certifique-se de ter a configuração do mysql como uma variável ambiental, caso contrário, o Prompt de Comando não entenderá o comando "mysql")
Métodos de solução de problemas úteis: Desative todas as regras de firewall no computador A. No prompt de comando / terminal do computador B, faça "ping 192.168.11.1" ou "telnet 192.168.11.1 3306".
Você precisará adicionar o usuário localhost separadamente. Você pode fazer isso em um comando (em vez de dois).
GRANT ALL on database.* to 'user'@'localhost' identified by 'paswword';
Se você quiser adicionar o usuário para que ele possa se conectar de qualquer lugar (menos seguro), use este:
GRANT ALL on database.* to 'user'@'%' identified by 'password';
TIP:
comentar pid e arquivo de soquete, se você não pode se conectar ao servidor
o mysql pode estar se conectando com arquivo pid e / ou soquete incorreto,
Então, quando você tenta se conectar ao servidor através da linha de comando "olha"
no arquivo pid / socket incorreto ...
### comment out pid and socket file, if you can't connect to server..
#pid-file=/var/run/mysql/mysqld.pid #socket=/var/lib/mysql/mysql.sock
Tags mysql