По умолчанию подключиться к базе данных MySQL можно только с того же хоста. Чтобы получить доступ к серверу с другого IP-адреса, нужно настроить удалённое подключение.
Внимание! После ручной правки конфигураций MySQL - my.cnf требуется перезапустить сервер MySQL.
ispmanager 5 — Службы — MySQL/MariaDB — Рестарт или в консоли сервера:
systemctl restart mysql systemctl restart mariadb
Создание удалённого подключения в ispmanager 6
В панели ispmanager — раздел Настройки — Серверы баз данных выделите сервер MySQL и нажмите кнопку Изменить.
В открывшемся окне поставьте галочку Удаленный доступ. В поле IP-адрес выберите IP, по которому будет доступно подключение.

В панелях с версией ниже 5.95 опции Удаленный доступ нет. Необходимо выполнить настройки вручную. В конфигурационном файле /etc/my.cnf (/etc/mysql/my.cnf для Debian) должна отсутствовать строка skip-networking, если она присутствует — следует её закомментировать:
#skip-networking
Также следует добавить/изменить:
bind-address = IP_сервера
Для удалённого подключения к базам данных требуется при создании базы отметить Удалённый доступ.

Если при создании базы вы не выбрали данную опцию, её можно указать в Управлении пользователями баз данных. Для этого перейдите в раздел Инструменты — Базы данных — выделите нужную базу — нажмите кнопку Пользователи — затем кнопку Изменить.
Пустое поле списка IP-адресов делает возможным подключение с любого IP.

Создание удалённого подключения в консоли
В конфигурационном файле /etc/my.cnf (/etc/mysql/my.cnf для Debian) должна отсутствовать строка skip-networking, если она присутствует — следует её закомментировать:
#skip-networking
Также следует добавить/изменить:
bind-address = IP_сервера
Подключитесь к сервер MySQL суперпользователем:
mysql -u root -p
Далее создайте пользователя, например, dbuser (если вместо % указать localhost, авторизация будет возможна только с текущего сервера):
create user 'dbuser'@'%' identified by 'password'
Можно проверить, что мы создали, командой, выводящей всех пользователей с их хостом и паролем:
select user,host,password from mysql.user;
Создайте базу, например, testdb:
create database testdb;
Предоставление прав пользователю
Права, назначенные пользователю, определяют, какие действия он сможет выполнять с базой данных. Можно назначать несколько привилегий одному пользователю.
Наиболее часто назначаемые права:
ALL PRIVILEGES— предоставляется полный доступ к базе данных.CREATE— разрешено создавать базы данных и таблицы.DROP— разрешено удалять базы данных и таблицы.DELETE— позволяет удалять строки из определенной таблицы.INSERT— разрешено вставлять строки в определенную таблицы.SELECT— разрешено читать базу данных.UPDATE— позволяет обновлять строки таблицы.GRANT OPTION— разрешено изменять права других пользователей.
Назначить привилегии пользователю можно, используя синтаксис:
GRANT permission ON database.table TO 'username'@'%';
где permission — вид предоставляемой привилегии.
Например, установите полные права на базу testdb пользователю dbuser:
GRANT ALL PRIVILEGES ON testdb.* TO 'dbuser'@'%';
Предоставить права на вставку:
GRANT INSERT ON *.* TO 'dbuser'@'%';
Предоставить несколько привилегий пользователю:
GRANT SELECT, INSERT, DELETE ON testdb.* TO 'dbuser'@'%';
Можно ограничить права пользователя на добавление данных в определенной базе, указав её перед точкой. Для ограничения прав на доступ к определенной таблице укажите нужную таблицу после точки:
GRANT INSERT *database_name.table_name* TO 'dbuser'@'%';
Отозвать все привилегии пользователя:
REVOKE ALL PRIVILEGES ON testdb.* FROM 'dbuser'@'%';
Посмотреть текущие привилегии пользователя:
SHOW GRANTS FOR 'dbuser'@'%';
Удалить пользователя:
DROP USER 'dbuser'@'%';
После завершения настройки прав необходимо перезагрузить привилегии:
FLUSH PRIVILEGES;