Aqui está uma lista de verificação rápida para habilitar conexões remotas para MySQL, mas leia (6) primeiro. Se eu esqueci de alguma coisa, sinta-se à vontade para editar.
1) Seu usuário remoto está se conectando por meio de uma conta que foi criada com o
usuário, host
apropriado entradas (veja a saída de select user,host de mysql.user ordem por 1,2
). Caso contrário, consulte o CREATE USER
e/ou GRANT
comandos. Examine a saída de SHOW GRANTS
para o usuário. 2) Você executou
privilégios de liberação;
(Alguns dizem que é desnecessário, outros dizem que é). 3a) Localize seu arquivo de configuração do mysql mencionado em 3b) abaixo revisando as informações em Este documento (ou para Windows, provavelmente no
C:\ProgramData\MySQL\MySQL Server 5.NNN
caminho). Varia de acordo com a distribuição para Linux. 3b) Você modificou e salvou
my.ini
(Windows) ou my.cnf
(Linux) e alterou bind-address
longe de 127.0.0.1
ou localhost
, em favor de 0.0.0.0
. E você criou e rem'd a seguinte linha:#skip-networking
. Será semelhante a este:[mysqld]
bind-address=0.0.0.0
#skip-networking
4) Reinicie o daemon mysql. Como se faz isso varia de acordo com a distro.
5) Problemas de firewall. Certifique-se de que a porta, padrão sendo
3306
, está aberto ao mundo exterior (que pode ser apenas a sua intranet). Isso inclui quaisquer outras camadas de firewalls, como AWS EC2 Security Groups, ou similar, se houver. 6) Entenda que há um risco de segurança associado a isso. A menos que você tenha conhecimento de expor seu servidor mysql a conexões remotas, não faça isso.
7) Faça avaliações de segurança frequentes com
select
declaração listada em 1. acima, incluindo a revisão do SHOW GRANTS
para esses usuários. Não conceda aos usuários um curinga desnecessariamente. Em vez disso, dê aos usuários os privilégios mínimos para que eles realizem seu trabalho. 8) Examine com frequência as tentativas de conexão com falha por meio do Log geral e do log de erros, conforme apresentado brevemente abaixo.
Para entrada, você pode consultar o log de consulta geral.
select @@general_log; -- a 1 indicates it is turned on for capture
select @@general_log_file; -- the file that it logs to
Assim, todas as consultas podem ser logado no Registro de consulta geral se a configuração estiver ativada. Examine o log para "conectar", mas especialmente para
Acesso negado para usuário
para ver tentativas fracassadas. Faça isso regularmente (não a cada poucos anos). Faço pelo menos duas vezes por dia. Observe que, obviamente, você pode automatizar os relatórios por meio de um programa externo. O mundo exterior vai librar seu servidor para entrar como na imagem abaixo. É uma realidade; prepare-se para isso. Confira a página de manual do O registro de erros também, observando os níveis de aviso e as configurações de detalhamento com base em sua versão.
Eu recomendaria criar uma cópia de backup por data (nomeada como tal) e excluir os arquivos de log após o backup para começar de novo após o backup. Os arquivos de log podem crescer rapidamente em tamanho, especialmente o Log Geral. Não se esqueça se você tem ou não a configuração ativada ou desativada para registro.
Você pode usar os dois logs para determinar se sua tentativa de conexão passou pelo firewall durante as etapas aqui.