Я размещаю свой собственный веб-сервер и пытаюсь получить доступ к своей базе данных MySQL со своего ноутбука (а не с сервера). На моем ноутбуке я добавил в файл config.inc.php следующее:

$i++;
$cfg['Servers'][$i]['verbose'] = 'xx.xxx.xxx.xxx';
$cfg['Servers'][$i]['host'] = 'xx.xxx.xxx.xxx';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'nick';
$cfg['Servers'][$i]['password'] = 'xxxxxxx';
$cfg['Servers'][$i]['AllowNoPassword'] = true;

Я создал на сервере пользователя с именем «ник» со всеми правами. Я перепробовал МНОГО разных конфигураций приведенного выше кода, и я просто не могу подключиться удаленно.

IP-адрес хоста - это IP-адрес моего маршрутизатора, который использует DNS, связывающий его с доменным именем, я бы предположил, что здесь нужен тот же хост. Я перенаправляю порт 8080 для своего веб-сайта и использую перенаправление порта 80 с DNS. Я получаю эту ошибку при попытке подключиться к серверу со своего ноутбука:

Ошибка MySQL сказал: Документация

2002 - Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом по прошествии определенного периода времени, или установленное соединение не удалось, потому что подключенный хост не ответил.

Сервер не отвечает (или сокет локального сервера настроен неправильно).

Кто-нибудь, пожалуйста, помогите, я не хочу тратить на это вечность: / Я должен работать на веб-сайте, а не над удаленным подключением MySQL, ха-ха!

0
Nick Suwyn 1 Май 2014 в 20:02

2 ответа

Лучший ответ

В брандмауэре Windows создайте исключение для порта 3306. Убедитесь, что порт также перенаправляется.

0
Nick Suwyn 19 Май 2014 в 13:11

MySQL работает на порту 3306, его нельзя блокировать. Это было не для меня.

Затем убедитесь, что ваш mysql разрешает подключения извне.

Просто отредактируйте файл my.cnf

  • Если вы используете Debian Linux, файл находится по адресу /etc/mysql/my.cnf.
  • Если вы используете Red Hat Linux / Fedora / Centos Linux, файл находится по адресу /etc/my.cnf.
  • Если вы используете FreeBSD, вам необходимо создать расположение файла /var/db/mysql/my.cnf.

    $ нано my.cnf

Идите вниз, пока не найдете [mysqld]

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/English
bind-address    = 65.55.55.2
# skip-networking

Измените "bind-address" на ip вашего сервера, чтобы он слушал его (по умолчанию localhost).

0
user2752985user2752985 1 Май 2014 в 16:49