Не удается подключиться к серверу MySQL (имя ip или доменное имя)

Я пытаюсь настроить веб-сервер (Debian 7). Я последовал за этим учебником. Благодаря сервису gandi.net я арендую свой сервер. И у меня теперь есть apache2, mysql, php5 и работает. Я подключаюсь к нему, используя следующую команду на терминале: ssh [email protected]

Следующим шагом будет создание моей базы данных через продолжение pro, и я не знаю, как это сделать, и документация не так понятна... Вот о чем я говорю: enter image description here

Я попытался подключиться:

  • Nom: какое-то имя, я нашел ясно. (Думаю, я могу положить что-нибудь здесь, верно?)
  • Host: ip или доменное имя
  • Пользователь: имя пользователя, которое я использую в моем ssh-соединении (cf выше)
  • Пароль: пароль, который я использую для подключения ssh (cf выше) и соединения mysql

В остальном я оставил, как и было, и получил это сообщение об ошибке:

Невозможно подключиться к домену hostname.com или время ожидания запроса.

Убедитесь, что адрес правильный и у вас есть необходимые привилегии, или попробуйте увеличить время ожидания подключения (в настоящее время 10 секунд).

MySQL сказал: "Не удается подключиться к серверу MySQL на домене" domainename.com "(61)" (2)

Любая идея, как я мог это сделать?

Ответ 1

Если вы выполняете обычную установку MySQL на Debian, он будет настроен на блокировку внешних подключений к базе данных.

Это означает, что вам все равно нужно сообщить MySQL, что внешний доступ в порядке. Для этого вам нужно обновить адрес привязки для MySQL. Это настроено в my.cnf, которое в системах на базе Debian находится в /etc/mysql/my.cnf.

В этом разделе найдите раздел, в котором говорится

[mysqld]

Там вы должны убедиться, что

  • строка skip-networking либо комментируется (комментарии начинаются с символа '#'), либо нет, и
  • Bind-address установлен либо на 0.0.0.0 (который есть, если нет связного адреса строки), либо на ваш IP-адрес сервера.

После этого вы должны перезапустить службу MySQL. Затем вам нужно создать пользователя, которому разрешен удаленный доступ. Это можно сделать с помощью SQL-запроса:

GRANT ALL ON yourdatabase.* TO [email protected]'*' IDENTIFIED BY 'yourpassword';

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

Наконец, вам нужно открыть порт 3306 (используемый MySQL MySQL) на вашем брандмауэре. Это обычно не обязательно, поскольку оно уже открыто в большинстве систем, но это можно сделать с помощью следующей команды iptables.

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
service iptables save

Источник: 1

Ответ 2

Это решение, которое сработало для меня: в Debian 7 загляните в my.cnf в /etc/mysql/my.cnf и найдите следующие строки:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address        = 127.0.0.1

Теперь измените 127.0.0.1 на IP-адрес сервера mysql, который вы хотите подключить, или 0.0.0.0 без ограничений.

Ответ 3

Я пытался найти файл .cnf, поэтому я сделал следующее:

sudo find / -name "*.cnf"

/etc/mysql/mysql.conf.d/mysqld.cnf
/etc/mysql/my.cnf
/etc/mysql/mysql.cnf
/etc/mysql/conf.d/mysqldump.cnf
/etc/mysql/conf.d/mysql.cnf

Я отредактировал /etc/mysql/mysql.conf.d/mysqld.cnf на основе

strace mysql ";" 2>&1  | grep cnf

stat("/etc/my.cnf", 0x7ffda9472660)     = -1 ENOENT (No such file or directory)
stat("/etc/mysql/my.cnf", {st_mode=S_IFREG|0644, st_size=683, ...}) = 0
open("/etc/mysql/my.cnf", O_RDONLY)     = 3
stat("/etc/mysql/conf.d/mysql.cnf", {st_mode=S_IFREG|0644, st_size=8, ...}) = 0
open("/etc/mysql/conf.d/mysql.cnf", O_RDONLY) = 4
stat("/etc/mysql/conf.d/mysqldump.cnf", {st_mode=S_IFREG|0644, st_size=55, ...}) = 0
open("/etc/mysql/conf.d/mysqldump.cnf", O_RDONLY) = 4
stat("/etc/mysql/mysql.conf.d/mysqld.cnf", {st_mode=S_IFREG|0644, st_size=3034, ...}) = 0
open("/etc/mysql/mysql.conf.d/mysqld.cnf", O_RDONLY) = 4
stat("/etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf", {st_mode=S_IFREG|0644, st_size=21, ...}) = 0
open("/etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf", O_RDONLY) = 4
stat("/root/.my.cnf", 0x7ffda9472660)   = -1 ENOENT (No such file or directory)
stat("/root/.mylogin.cnf", 0x7ffda9472660) = -1 ENOENT (No such file or directory)

И изменил привязку-адрес на локальный IP-адрес.

Ответ 4

sudo vim/etc/ssh/sshd_config

установите localhost в файл httpd.conf следующим образом

Имя_сервера localhost

иначе порт не примет ваш запрос на сервер и покажет cant подключиться к серверу ip_address