Не удается подключиться к серверу 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