Como conceder permissões de acesso remoto ao servidor de mysql para o utilizador?
Se o fizer SHOW GRANTS
na minha base de dados mysql FICO
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'
IDENTIFIED BY PASSWORD 'some_characters'
WITH GRANT OPTION
Se não me engano, root@localhost
significa que o utilizador root
só pode aceder ao servidor a partir de localhost
. Como é que digo ao MySQL para conceder root
a permissão para aceder a este servidor de mysql a partir de todas as outras máquinas (na mesma rede), também?
9 answers
Isto dá acesso ao root com a mesma senha de qualquer máquina em *.example.com
:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%.example.com'
IDENTIFIED BY 'some_characters'
WITH GRANT OPTION;
FLUSH PRIVILEGES;
Se a resolução do nome não funcionar, também pode conceder acesso por IP ou sub-rede:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%'
IDENTIFIED BY 'some_characters'
WITH GRANT OPTION;
FLUSH PRIVILEGES;
Tenta:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Pa55w0rd' WITH GRANT OPTION;
Você precisa tomar algumas medidas para se certificar de que primeiro mysql e, em seguida, usuário raiz é acessível a partir do exterior:
Desactivar
skip-networking
emmy.cnf
(i. e.:/etc/mysql/my.cnf
)Verifique o valor de
bind-address
emmy.cnf
, Se estiver definido para127.0.0.1
, poderá alterá-lo para0.0.0.0
para permitir o acesso a todos os IPs ou a qualquer ip de que se queira ligar.-
Conceder acesso remoto ao utilizador do root a partir de qualquer ip (ou indicar o seu ip em vez de
%
)GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_root_password' WITH GRANT OPTION; FLUSH PRIVILEGES;`
-
Reiniciar o serviço mysql:
sudo service mysql restart
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'
IDENTIFIED BY 'YOUR_PASS'
WITH GRANT OPTION;
FLUSH PRIVILEGES;
*.* = DB.TABLE
você pode restringir o usuário a banco de dados específico e tabela específica.
'root'@'%'
você pode alterar o root com qualquer usuário que você criou e % é permitir todo o IP. Você pode restringi-lo alterando %.168.1.1 etc.
Essas subvenções SQL que os outros estão a partilhar fazem trabalho. Se você ainda não conseguir acessar a base de dados, é possível que você tenha apenas uma restrição de firewall para a porta. Depende do seu tipo de servidor (e de quaisquer roteadores no meio) de como abrir a conexão. Open TCP port 3306 inbound, and give it a similar access rule for external machines (all/subnet/single IP/etc.).
- verificar se o porto está a aceitar ligações:
telnet (mysql server ip) [portNo]
- Adicionar a regra da tabela ip para permitir ligações no porto:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
-não recomendaria isso para o ambiente de produção, mas se seus iptables não estão configurados corretamente, adicionar as regras ainda pode não resolver o problema. Nesse caso, deve ser feito o seguinte:
service iptables stopEspero que isto ajude.
Abra o /etc/mysql / mysql.conf.d / mysqld.ficheiro cnf e comentar a linha.
Bind-address = 127. 0. 0. 1
Se precisar de acesso ao local-xampp-mysql. Você pode ir para XAMPP-shell - > abrir a linha de comandos.
Then mysql-uroot-p --port=3306 ou mysql-uroot-p (if there is password set). Depois disso, você pode conceder esses aces a partir de mysql shell page (também pode trabalhar a partir de localhost/phpmyadmin).
Só adicionando isto se alguém encontre este tópico e tenha problemas de principiante.
Dois passos:
Configurar o utilizador com caracteres especiais:
create user 'root'@'%' identified by 'some_characters'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD 'some_characters' WITH GRANT OPTION
vim /etc/my.cnf
adicionar o seguinte:bind-address=0.0.0.0
Reiniciar o servidor, não deverá ter qualquer problema em ligar-se a ele.