Я пытаюсь подключиться к удаленному серверу MySQL с моего локального виртуального компьютера, используя следующий код:
$conn = mysql_connect("$dbhost", "$dbuser", "$dbpass") or die(mysql_error()); mysql_select_db($dbname, $conn) or die(mysql_error());
Моя проблема в том, что я не могу подключиться локально, получив ошибку:
Не удается подключиться к серверу MySQL на «xxx.xxx.xxx.xxx» (10060)
Это не тот случай, когда я загружаю тот же файл PHP на сервер. Я могу запросить базу данных без каких-либо проблем.
Я также не могу подключиться через командную строку, но я могу получить доступ к cPanel, который исключает возможность того, что мой IP-адрес запрещен случайно.
На моем локальном сервере работает PHP 5.2.9, удаленный сервер 5.2.12
%
(любой хост) (подробности см. в руководстве ) Текущая проблема – первая, но сразу после ее решения вы, скорее всего, получите вторую.
Очень просто подключить удаленный сервер MySQL с помощью PHP, вам нужно сделать следующее:
Создайте пользователя MySQL на удаленном сервере.
Предоставьте Пользователю Полную привилегию.
Подключитесь к серверу с помощью PHP-кода (пример ниже)
$link = mysql_connect('your_my_sql_servername or IP Address', 'new_user_which_u_created', 'password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_select_db('sandsbtob',$link) or die ("could not open db".mysql_error()); // we connect to localhost at port 3306
Я просто решил эту проблему. Что я узнал:
my.cnf
и установить адрес bind-address = your.mysql.server.address
в [mysqld]
проверьте, работает ли он
mysql -u root -h your.mysql.server.address –p
создать пользователя (usr или что-то еще) с доменом% as и предоставить ей доступ к соответствующей базе данных.
mysql> CREATE USER 'usr'@'%' IDENTIFIED BY 'some_pass'; mysql> GRANT ALL PRIVILEGES ON testDb.* TO 'monty'@'%' WITH GRANT OPTION;
открыть брандмауэр для порта 3306 (вы можете использовать iptables. не забудьте открыть порт для eithe reveryone или если у вас жесткая защита, то разрешите только адрес клиента)
вы должны теперь подключить сервер mysql от своего php-скрипта клиентского сервера.
Возможно, это не ответ на вопрос плаката. Но это может быть полезно для людей, чье лицо имеет такую же ситуацию со мной:
Клиент имеет две сетевые карты: беспроводную и обычную. telnet serverAddress 3306
на сервер может быть telnet serverAddress 3306
завершится с ошибкой. И будет жаловаться
Не удается подключиться к серверу MySQL на «xxx.xxx.xxx.xxx» (10060)
когда пытаетесь подключиться к серверу. Поэтому я запретил обычные сетевые адаптеры. И попытался telnet serverAddress 3306
он работает. И тогда он работает при подключении к серверу MySQL.