linux:mysql:mysql_remote
Содержание
MySQL - удаленный доступ
my.cnf
В файле /etc/my.cnf
в секцию [mysqld]
добавляем bind-address
bind-address = *
Строку 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
linux/mysql/mysql_remote.txt · Последнее изменение: 2016/11/23 16:33 — 127.0.0.1
Обсуждение