Инструкция по организации внешних подключений mysql.

bind-address

Инструкция по организации внешних подключений mysql.

1) открыть порт 3306 для привязки к любым ip-адресам

vi /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address = 0.0.0.0

Проверим:

systemctl restart mysql; netstat -tulpn

Вывод должен быть такой:

tcp 0.0.0.0:3306

2) mysql -u root

grant all privileges on \<database_name>.* to \<username>@\<host_ip> identified by 'secret_pass';

flush privileges;

угловые скобки не надо - вместо них подставляешь параметры.

где host_ip - ip адрес ВМ, с которой надо разрешить обращение к БД;

database_name - имя БД

username – имя пользователя

Если надо доступ с любого хоста, то вместо \<host_ip> можно поставить '%' - но лучше так не делать, т.к. повышаются риски проникновения.

https://dev.mysql.com/doc/refman/8.0/en/grant.html

3) Открыть порт на файерволе:

iptables -I INPUT -p tcp --dport 3306 -j ACCEPT