как подключиться к базе данных на другом сервере - PullRequest
8 голосов
/ 19 ноября 2009

Могу ли я иметь свои php-скрипты на сервере A и подключиться к базе данных MySQL на сервере B?

Если да, как это будет сделано? Заранее спасибо

Ответы [ 8 ]

7 голосов
/ 20 ноября 2009

все эти простые методы довольно сложны

предположим, что у вас есть база данных на сервере B и веб-сайт на сервере A (скажем, у нее есть IP 192.234.12.1)

в белом списке cpanel IP сервера B

и создайте нового пользователя с достаточными привилегиями в базе данных (скажем, этот пользователь тестовый)

затем создайте этого пользователя как test@192.234.12.1

4 голосов
/ 19 ноября 2009

Да.

Так же, как вы обращаетесь к локальному узлу на том же сервере, вы меняете хост базы данных на внешний. Это скорее проблема конфигурации, вам нужно предоставить удаленный доступ пользователям вашей базы данных к MySQL, вы также должны убедиться, что ваш брандмауэр разрешает соединения через порт MySQL.

Пример в Debian: http://www.debianhelp.co.uk/remotemysql.htm

3 голосов
/ 27 апреля 2017

Да, это может быть сделано.

Узнайте IP-адрес сервера A, на который будут загружены ваши скрипты. Не забудьте изменить локальный хост на IP-адрес Сервера B в методах mysql_connect () или mysqli_connect ().

Теперь перейдите на панель управления сервером B, где находится ваша база данных.

На домашней странице панели управления перейдите в раздел базы данных и выберите параметр «Удаленный MYSQL».

Затем добавьте IP-адрес Сервера A и нажмите «Добавить хост».

Теперь вы можете получить доступ к базе данных на сервере B, пока ваши сценарии работают на сервере A. Напомним, что полученный результат будет медленным, поскольку он получает данные из базы данных, расположенной на другом сервере.

Добро пожаловать

2 голосов
/ 19 ноября 2009

Только не указывайте имя хоста другого ящика для соединения. Детали зависят от используемого расширения:

$mysql = mysql_connect($host, $user, $pass);
$mysqli = new mysqli($host, $user, $password, $schema);
$pdo = new PDO("mysql:host=$host", $user, $pass);

Убедитесь, что пользователю разрешен доступ через сервер MySQL ( CREATE USER ) и убедитесь, что на этом пути нет брандмауэра.

0 голосов
/ 19 июля 2018

Это идеальное решение для подключения другой базы данных с другого сервера.

$ dbserverName = "191.238.0.2";

$ dbUsername = "lauranco_L2L";

$ dbPassword = "SL92TIW5T96L";

$ dbName = "lauranco_siteBits";

0 голосов
/ 22 августа 2016

У меня были похожие проблемы, но вот что работает для меня: Чтобы подключиться к серверу B с сервера A, во-первых, вам необходимо разрешить хосты удаленного доступа к MySQL в cPanel (сервер B), Home -> Базы данных -> удаленный MySQL, а также внести белый список в IP-адрес брандмауэра (то есть IP-адрес сервера B ). Тогда должно работать следующее соединение php db.

$db_connect =  mysqli_connect("serverB.com", "dbuser", "dbpassword", "dbname");
// Evaluate the connection
if (mysqli_connect_errno()) {
    echo mysqli_connect_error();
    exit();
}else{
   //successful connection
    echo "Yes, successful";
}
0 голосов
/ 19 ноября 2009

Посмотрите здесь:

http://us2.php.net/manual/en/function.mysql-connect.php

Вы можете передать имя хоста сервера в качестве аргумента или настроить в php.ini.

0 голосов
/ 19 ноября 2009

Это все, что вам нужно .

(Даже у вас могут быть свои скрипты на сервере A, ваш веб-сервер на сервере B и ваша база данных на сервере C ...)

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