По умолчанию MySql настроен таким образом, что к нему разрешены подключения только с локальной машины, следовательно, подключиться из-вне (по интернет или локальной сети) не получится.
Чтобы настроить удаленный доступ к MySql (настройка производится на операционной системе Ubuntu Linux и может отличаться для других ОС) необходимо отредактировать файл с настройками (конфигурационный файл). Обычно он располагается по пути /etc/mysql и называется my.cnf, хотя бывают и другие настройки.
Чтобы отредактировать файл с настройками MySql необходимо выполнить следующую команду:
sudo nano /etc/mysql/my.cnf
Если файл с настройками находится по пути /etc/mysql/mysql.conf.d/ и называется mysqld.cnf, тогда так:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Далее необходимо найти такую строку в открытом файле:
bind-address = 127.0.0.1
В данной строке указывается, с каких адресов разрешено подключение к MySql, в данном случае только с адреса 127.0.0.1, то есть с локальной машины (127.0.0.1 = localhost). Для того, чтобы открыть доступ к нужному IP, его нужно прописать вместо 127.0.0.1. Если необходим доступ с любого адреса, то написать как показано ниже.
bind-address = 0.0.0.0
После замены настроет bind-address MySql, его необходимо перезапустить:
sudo service mysql restart
Или так:
/etc/init.d/mysql restart
Теперь нужной подключиться к MySql с паролем суперпользователя:
sudo mysql -p
После подключения к MySql нужно создать пользователя и дать привилегию, например:
mysql> GRANT ALL PRIVILEGES ON userdatabase.* TO 'user'@'192.168.0.10' IDENTIFIED BY 'password';
В данном случае дается полный доступ к базе данных userdatabase пользователю с логином user и паролем password, подключающемуся с IP 192.168.0.10.
Если необходимо разрешить доступ ко всем базам, то вместо имени базы данных пишется знак *, если необходимо разрешить доступ с любого IP, то вместо IP адреса пишется знак %. Ниже представлен пример, разрешающий пользователю user полный доступ ко всем базам данных с любого IP.
mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password';