Como permitir a ligação remota ao mysql
instalei o MySQL Community Edition 5.5 na minha máquina local e quero permitir ligações remotas para que possa ligar-me a partir de fonte externa.
Como posso fazer isso?12 answers
Isso é permitido por padrão no MySQL.
O que está desactivado por omissão é o acesso remoto root
. Se quiser activar isto, execute este comando SQL localmente:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
E depois encontrar a seguinte linha e comentá-la no seu ficheiro my.cnf
, que normalmente vive em /etc/mysql/my.cnf
nos sistemas Unix/OSX. Em alguns casos, a localização do arquivo é /etc/mysql / mysql.conf.d / mysqld.cnf).
Se for um sistema Windows, pode encontrá-lo na pasta de instalação do MySQL, normalmente algo como C:\Program Files\MySQL\MySQL Server 5.5\
e o nome do ficheiro será my.ini
.
Mudar de linha
bind-address = 127.0.0.1
A
#bind-address = 127.0.0.1
E reiniciar o servidor de MySQL (Unix/OSX, e Windows ) para que as alterações façam efeito.
Depois de fazer tudo acima, ainda não consegui entrar como {[[2]} remotamente, mas a Telnetting para a porta 3306
confirmou que MySQL
estava a aceitar ligações.
Comecei a olhar para os utilizadores do MySQL e reparei que haviavários utilizadores de raiz com senhas diferentes.
select user, host, password from mysql.user;
Então em MySQL
i defina todas as senhas para root de novo e eu poderia finalmente entrar remotamente como root
.
use mysql;
update user set password=PASSWORD("NEWPASSWORD") where User='root';
flush privileges;
Apenas uma nota da minha experiência, você pode encontrar o ficheiro de configuração sob este caminho {[[0]}.
(eu lutei por algum tempo para encontrar este caminho)
- 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.
Se o seu processo do servidor de MySQL estiver a ouvir no 127.0.0.1 ou: 1 só então você não será capaz de se ligar remotamente. Se tiver uma configuração bind-address
em /etc/my.cnf
, Esta pode ser a fonte do problema.
Também terá de adicionar privilégios para um utilizador que não olocalhost
.
Por favor, siga os passos abaixo mencionados para definir o acesso remoto de caracteres especiais para o Utilizador de MySQL.
(1) Abrir cmd.
(2) navegar pelo caminho C:\Program ficheiros\MySQL\mysql Server 5.X\bin e execute este comando.
Mysql-u root-p
(3) indique a senha de root.
(4) Execute o seguinte comando para fornecer a permissão.
CONCEDER TODOS OS PRIVILÉGIOS EM . PARA'UTILIZADOR'@' IP ' IDENTIFICADO POR "Senha';
Nome de utilizador: Nome de utilizador que deseja ligar ao servidor de MySQL.
IP: endereço IP público de onde deseja permitir o acesso ao MySQL servidor.Senha: Senha do utilizador utilizado.
O IP pode ser substituído por % para permitir que o utilizador se ligue a partir de qualquer IP endereco.
(5) lave os previleges seguindo o comando e saia.
PRIVILÉGIOS DE DESCARGA;
Sair;
Se instalou o MySQL de {[[0]}, ele só ouve na interface local por omissão. Para corrigir isso, você precisa editar /usr/local/etc/my.cnf
e mudar o bind-address
de 127.0.0.1
para *
.
Então corre brew services restart mysql
.
E para as pessoas do OS X lá fora estejam cientes de que o parâmetro bind-address é normalmente definido no plist de lavagem e não no my.ficheiro ini. Então, no meu caso, removi <string>--bind-address=127.0.0.1</string>
de /Library/LaunchDaemons/homebrew.mxcl.mariadb.plist
.
Este blog Como configurar um servidor de MySQL na Rede Local será útil na configuração de um MySQL
a partir do zero
SE mysqld
tem um endereço de encadernação configurado para um loopback/endereço local (por exemplo 127.0.0.1
), o servidor não será acessível a partir de máquinas remotas, porque uma interface de loopback não pode ser alcançada a partir de nenhuma máquina remota.
Configure esta opção para 0.0.0.0
(::
para IPv4+6) para aceitar conexões de qualquer máquina, ou para outro endereço acessível externamente, se você quiser apenas permitir conexões em uma interface.