2013-09-17 3 views
0

У меня есть проект на размещенном сервере. Они очень ненадежны, поэтому я решил переехать на другой хост. В промежутке времени я хочу оставить php-файлы на существующем сервере и указать их в другой базе данных MySQL на моем сервере rackspace. Я настроил mysql на сервере rackspace для приема удаленных подключений. Я могу успешно подключиться к нему через терминал от моего ubuntu дома. Однако каждый раз, когда PHP файлы на хостинг попытке сервера для подключения к нему я получаю ошибку ниже:MYSQL Удаленный доступ php

Это код в PHP ....

mysql_pconnect("1.2.3.4","user","password") 
or die("Unable to connect to SQL server".mysql_error()); 

Это ошибка/выход

Не удается подключиться к SQL serverLost подключения к серверу MySQL во время запроса

Любые идеи, почему я могу подключиться через т он терминал, но не от php?

Благодаря

+0

было бы неприемлемым в течение нескольких часов? –

+0

Не все серверы хостинга допускают это. Rackspace или ваш размещенный сервер может блокировать удаленный MySQL. –

+0

Какой код ошибки вы получите, изменив метод die: die («Невозможно подключиться к SQL-серверу» .mysql_error(). «Код ошибки:« .mysql_errno »; – Mainz007

ответ

0

Проверьте wait_timeout. Установите его на большое количество, пока вы делаете свой ход.

+0

Я думал просто перемещать все php в мое пространство и указывать DNS доменов на этом IP-адресе. Наверное, это самое простое решение. – Spunog

0

Если соединение будет отклонено немедленно, то ваши старые или новые хостинг-провайдеры блокируют соединение, или у вас возникла проблема с маской хоста в учетной записи пользователя, которую вы используете для подключения. Вы можете попробовать fsockopen(), чтобы попробовать напрямую подключиться, чтобы узнать, отказано ли соединение, если у вас нет доступа к командной строке mysql-клиентов на старом хосте, чтобы попытаться определить, какой из них имеет место. Если он заблокирован после таймаута, это почти наверняка политика брандмауэра на одном или обоих концах.

Однако, я могу только сказать, что:

а) функции mysql_ устарели, так что вы, вероятно, следует также посмотреть на обновление до Mysqli или PDO или что-то.

и

б) если ты не расскажешь все, что апи вы используете, чтобы соединиться с SSL или каким-либо другим безопасным методом (в случае mysql_ это флаг MYSQL_CLIENT_SSL) ваши данные (и, возможно, пароль или некоторые вариации это может позволить злоумышленникам подключиться, как вы), будет проходить через открытый интернет не зашифрованный ... Конечно, для этого требуется сертификат SSL или уязвим для человека в средних атаках, поэтому ... да.

Смежные вопросы