====== MySQL - удаленный доступ ====== ===== my.cnf ===== В файле ''/etc/my.cnf'' в секцию ''[mysqld]'' добавляем ''[[http://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_bind-address|bind-address]]'' bind-address = * Строку ''[[http://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_skip-networking|skip-networking]]'' удаляем или комментируем. Перезагружаем MySQL # service mysqld restart Удостоверяемся, что MySQL слушает внешний интерфейс # netstat -tunap | grep mysql tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 8225/mysqld ===== Предоставляем доступ для удаленного IP/хоста ===== mysql> GRANT ALL PRIVILEGES ON *.* TO remote_user@'108.170.13.254' IDENTIFIED BY 'some-password'; mysql> GRANT ALL PRIVILEGES ON *.* TO remote_user@'%' IDENTIFIED BY 'some-password'; mysql> FLUSH PRIVILEGES; Закрыть доступ mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'remote_user'@'108.170.13.254'; mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'remote_user'@'%'; mysql> FLUSH PRIVILEGES; ===== Настройки firewall ===== Открываем доступ к 3306 порту извне # iptables -A INPUT -m tcp -p tcp --dport 3306 -j ACCEPT Открываем доступ только для определенного IP # iptables -A INPUT -s 108.170.13.254 -m tcp -p tcp --dport 3306 -j ACCEPT Открываем доступ для подсети # iptables -A INPUT -s 108.170.13.0/24 -m tcp -p tcp --dport 3306 -j ACCEPT Если у вас firewalld firewall-cmd --add-port=3306/tcp firewall-cmd --permanent --add-port=3306/tcp ===== Проверка соединения ===== mysql -h HOST -u USERNAME -pPASSWORD