mysql доступ по сети

mysql доступ по сети

Если требуется обеспечить к mysql доступ по сети, то необходимо сделать несколько вещей:

  1. Изменение настроек mysql демона;
  2. Перезапуск mysql демона;
  3. Создание mysql пользователя с необходимыми правами;
  4. Открытие порта в IPTABLES (опционально);

Убедиться в том, что mysql демон допускает только локальные подключения можно набрав команду:

$ netstat -tlp

Вы должны увидеть, что mysql демон запущен и принимает только локальные подключения о чем свидетельствует строка: localhost:mysql

mysql запущен для локальных подключений

Изменение настроек mysql демона.

Первое что нужно сделать, что бы открыть к mysql доступ по сети — это изменить файл настроек mysql демона. Этот файл находится, как правило, по пути: /etc/mysql/my.cnf.

Открываем его редактором из под привилегированного пользователя:

$ nano /etc/mysql/my.cnf

Находим в файле строку с директивой bind-address и комментируем её символом решетка "#", а ниже прописываем следующее: bind-address = :: Это откроет к mysql доступ по сети, как по протоколу IPv4, так и по протоколу IPv6 с любого внешнего хоста. Если необходимо обращаться с определенного хоста, то необходимо указать его по аналогии с существующим значением.

Если кому интересно, можно прочитать про директиву bind-address здесь: MySQL 5.7 Reference Manual/Server Command Options/bind-address

В результате должно получиться следующее:

Отредактированный файл my.conf

Перезапуск mysql демона.

Второе, что нужно сделать, что бы открыть к mysql доступ по сети — это произвести перезапуск его демона (или сервиса mysql. Кому как проще), что бы он считал новую конфигурацию. Это можно сделать либо так:

$ /etc/init.d/mysql restart

либо так:

$ service mysql restart

Теперь при выводе команды:

$ netstat -tlp

можно наблюдать следующую картину:

mysql запущен для внешних подключений

Что означает, что к нашему mysql можно обращаться из вне.

Создание mysql пользователя с необходимыми правами.

Под необходимыми правами я имею ввиду, что нужно указать требуемый хост для пользователя, или разрешить ему доступ со всех хостов: 'outuser'@'%'

mysql> GRANT ALL PRIVILEGES ON *.* TO 'outuser'@'%' IDENTIFIED BY '...' WITH GRANT OPTION

MySQL 5.7 синтаксис выражения GRANT

Открытие порта в IPTABLES

Данных манипуляций должно быть достаточно что бы обеспечить к mysql доступ по сети, но если у вас используется iptables, то возможно вам придется открывать порт для внешних соединений явно (опять же из под привилегированного пользователя):

$ iptables -A INPUT -p tcp –dport 3306 -j ACCEPT

Команда выше означает: "Добавить в цепочку INPUT, правило для tcp пакетов, у которых порт назначения 3306 — РАЗРЕШИТЬ", ну, или типа того.

Руководство по iptables на opennet.ru

Соответственно, если вы используете нестандартный порт, то указываете его вместо 3306, плюс при старте клиента тоже необходимо его указать явно:

$ mysql -h ХОСТ_MYSQL_СЕРВЕРА -P ПОРТ_MYSQL_СЕРВЕРА -u ИМЯ_ЮЗЕРА -p

После вводите пароль и радуетесь жизни 😉 Всем желаю добра и приятной разработки.

PS:
Но будьте осторожны, открывая к mysql доступ по сети вы уменьшаете безопасность системы! Так как любой публичный сервис на вашей машине — это потенциальная возможность для взлома.

 

Возможно Вас заинтересуют эти материалы

Debian: Как включать и выключать модули php5

Не часто требуется, но иногда нужно включить, или отключить тот, или иной модуль PHP5. Хороший

Включаем технологию zswap на Debian jessie

Смысл технологии zswap сводится к тому, что при необходимости выгрузки страниц памяти на диск производится попытка сжать

NO_PUBKEY или публичный ключ репозитория

Недавно решил установить на свой linux Debian Jessie новый Mozilla Firefox добавил новый репозиторий, и