Habilitar acesso remoto a bancos de dados MySQL / MariaDB no Linux

30 de agosto de 2021 Off Por sudoroot

 Por padrão, MySQL ou MariaDB apenas escuta conexões do host local. Todo o acesso remoto ao servidor é negado por padrão.

Etapa 1: para habilitar o acesso remoto, primeiro encontre o local do arquivo de configuração e execute os comandos abaixo para abrir o arquivo de configuração MySQL / MariaDB:

1
vi /etc/my.cnf

Depende do seu sistema operacional e da versão do MySQL / MariaDB que você usa. Aqui estão alguns locais:

1
2
3
/etc/my.cnf
/etc/mysql/mysql.conf.d/mysql.cnf
/etc/mysql/mariadb.conf.d/50-server.cnf

Você pode encontrar o local usando este comando:

1
2
3
find / -name my.cnf
find / -name *server.cnf
find / -name mysql.cnf

Etapa 2: você deve comentar (precedido por caracteres hash (#)) as seguintes linhas:

1
2
3
4
5
[mysqld]
...
#skip-networking
...
#bind-address = <some ip-address>

ou você pode usar o endereço IP do seu servidor (suponha: 11.11.11.11) ou 0.0.0.0

1
bind-address = 11.11.11.11

Etapa 3: reinicie o servidor MySQL / MariaDB

1
2
systemctl restart mysql.service
systemctl restart mariadb.service

Para verificar se a mudança acontece, execute os comandos abaixo:

1
2
[root@tutorialspots ~]# netstat -anp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      2884/mysqld

Etapa 4: abra o firewall (suponha que o endereço remoto: 22.22.22.22)

Para iptables

1
2
3
[root@tutorialspots ~]# iptables -I INPUT -p udp -s 22.22.22.22 --dport 3306 -j ACCEPT
[root@tutorialspots ~]# iptables -I INPUT -p tcp -s 22.22.22.22 --dport 3306 -j ACCEPT
service iptables save

Para firewalld

1
2
3
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="22.22.22.22" port protocol="tcp" port="3306" accept'
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="22.22.22.22" port protocol="udp" port="3306" accept'
sudo firewall-cmd --reload

Etapa 5: Conecte-se ao servidor MySQL / MariaDB usando o usuário root

1
mysql -uroot -pdatabaseuser_password -h server hostname or IP address

Exemplo:

1
2
3
4
5
6
7
8
9
10
[root@tutorialspots ~]#mysql -uroot -pMYROOTPASSWORD
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 61351084
Server version: 10.3.8-MariaDB MariaDB Server
 
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
MariaDB [(none)]>

Etapa 6: Por exemplo, se você deseja um computador cliente com endereço IP 22.22.22.22 (às vezes, você deve usar o nome do host como sv.tutorialspots.com) para se conectar a um banco de dados chamado your_database_name como usuário your_user, então use este comando:

1
2
GRANT ALL ON your_database_name.* TO '[email protected]' IDENTIFIED BY 'new password here';
quit;

habilitar acesso remoto mysql mariadb

Se você receber um erro:

1
ERROR 1045 (28000): Access denied for user 'your_user'@'22.22.22.22' (using password: YES)

Mudar

1
2
GRANT ALL ON your_database_name.* TO '[email protected]' IDENTIFIED BY 'new password here';
quit;

Para

1
2
3
CREATE USER 'your_user'@'22.22.22.22' IDENTIFIED BY 'new password here';
grant all privileges on your_database_name.* to 'your_user'@'22.22.22.22' with grant option;
quit;