Инструкция по организации внешних подключений 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