mysql доступ по сети
Если требуется обеспечить к mysql доступ по сети, то необходимо сделать несколько вещей:
- Изменение настроек mysql демона;
- Перезапуск mysql демона;
- Создание mysql пользователя с необходимыми правами;
- Открытие порта в IPTABLES (опционально);
Убедиться в том, что mysql демон допускает только локальные подключения можно набрав команду:
$ netstat -tlp
Вы должны увидеть, что mysql демон запущен и принимает только локальные подключения о чем свидетельствует строка: localhost: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
В результате должно получиться следующее:

Перезапуск mysql демона.
Второе, что нужно сделать, что бы открыть к mysql доступ по сети - это произвести перезапуск его демона (или сервиса mysql. Кому как проще), что бы он считал новую конфигурацию. Это можно сделать либо так:
$ /etc/init.d/mysql restart
либо так:
$ service mysql restart
Теперь при выводе команды:
$ netstat -tlp
можно наблюдать следующую картину:

Что означает, что к нашему 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 доступ по сети вы уменьшаете безопасность системы! Так как любой публичный сервис на вашей машине - это потенциальная возможность для взлома.