Не удается подключиться к серверу MySQL по IP-адресу (10061) - PullRequest
5 голосов
/ 19 августа 2010

Мне нужно подключиться к удаленной базе данных MySQL и создал следующий код подключения:

<?php
/* Set Variables */
$host="myipaddress";
$db="mydbname"; 
$username="dbuser";
$pass="mypass";

/* Attempt to connect */
$mysqli=new mysqli($host,$username,$pass,$db);
if (mysqli_connect_error()){
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
echo 'Success... ' . $mysqli->host_info . "\n";

$mysqli->close();

}
?>

Из соображений безопасности я не предоставил фактические значения переменных.Когда я запускаю это в своей системе разработки, я получаю

Connect Error (2003) Can't connect to MySQL server on 'myipaddress' (10061)

Мой PHP немного ржавый, кто-то может определить, где мой код неисправен?Обратите внимание, что dbuser имеет права выбора, вставки и обновления имени базы данных, заданные в качестве переменной.

Спасибо, Сид

Редактировать Я внес изменения в my.cnf и перезапустилMySQL.Теперь я получаю отказ в доступе для пользователя 'dbuser' @ 'mycurrenthostname' (используя пароль YES).Когда я использую mysql -u dbuser -p из командной строки, я могу войти в систему.Я разрешил вставлять, обновлять и выбирать dbuser с хостом "%", чтобы dbuser мог подключиться откуда угодно.

Я прочитал Справочное руководство по MySQL об этой ошибке, но все еще застрял.Есть ли проблема с моим кодом, теперь, когда my.cnf был исправлен?

Ответы [ 3 ]

14 голосов
/ 19 августа 2010

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

Проверьте параметр конфигурации MySQL bind-address в my.cnf, чтобы убедиться, что он разрешает удаленные подключения.

Есть информацияи советы по устранению неполадок здесь:

http://dev.mysql.com/doc/refman/5.1/en/can-not-connect-to-server.html

3 голосов
/ 19 августа 2010

Согласно документации MySql, ошибка (2003) «Не удается подключиться к серверу MySQL на сервере» (10061) указывает на то, что в сетевом соединении было отказано.Вы должны убедиться, что сервер MySQL работает, на нем включены сетевые подключения и что указанный вами сетевой порт настроен на сервере.

Я не знаком с php, но проблемаможет не быть в вашем коде.

2 голосов
/ 03 июля 2019

Если вы получаете вышеупомянутую ошибку даже после открытия открытого доступа к порту Mysql 3306,

Просто измените адрес привязки файла mysql my.cnf, который находится по адресу /etc/mysql/my.cnf Обновите адрес привязки, как указано ниже bind-address = 0.0.0.0

Это позволит удаленно получить доступ ко всем ips На AWS ec2 он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...