Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Conexões Remotas Mysql Ubuntu


Para expor o MySQL a qualquer coisa que não seja localhost, você terá que ter a seguinte linha

Para mysql versão 5.6 e inferior

sem comentários em /etc/mysql/my.cnf e atribuído ao endereço IP do seu computador e não loopback

Para mysql versão 5.7 e superior

sem comentários em /etc/mysql/mysql.conf.d/mysqld.cnf e atribuído ao endereço IP do seu computador e não loopback
#Replace xxx with your IP Address 
bind-address        = xxx.xxx.xxx.xxx

Ou adicione umbind-address = 0.0.0.0 se você não quiser especificar o IP

Então pare e reinicie o MySQL com a nova entrada my.cnf. Depois de executar, vá para o terminal e digite o seguinte comando.
lsof -i -P | grep :3306

Isso deve voltar algo assim com seu IP real no xxx's
mysqld  1046  mysql  10u  IPv4  5203  0t0  TCP  xxx.xxx.xxx.xxx:3306 (LISTEN)

Se a instrução acima retornar corretamente, você poderá aceitar usuários remotos. No entanto, para um usuário remoto se conectar com os privilégios corretos, você precisa criar esse usuário no host local e '%' como em.
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';

então,
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';

e finalmente,
FLUSH PRIVILEGES; 
EXIT;

Se você não tiver o mesmo usuário criado acima, quando fizer logon localmente, poderá herdar os privilégios básicos do localhost e ter problemas de acesso. Se você deseja restringir o acesso que meu usuário tem, então você precisa ler a sintaxe da instrução GRANT AQUI Se você passar por tudo isso e ainda tiver problemas, poste alguma saída de erro adicional e as linhas apropriadas do my.cnf.

NOTA:Se lsof não retornar ou não for encontrado, você pode instalá-lo AQUI baseado em sua distribuição Linux. Você não precisa do lsof para fazer as coisas funcionarem, mas é extremamente útil quando as coisas não estão funcionando como esperado.

ATUALIZAÇÃO:Se mesmo depois de adicionar/alterar o bind-address em my.cnf não funcionou, vá e altere-o no local em que foi declarado originalmente:
/etc/mysql/mariadb.conf.d/50-server.cnf