Подключение к удаленной базе данных MS SQL через драйвер SQLSRV

#php #sql #sql-server

#php #sql #sql-сервер

Вопрос:

Я пытаюсь подключиться к удаленной базе данных ms sql (не к локальному хосту), но каждый раз время ожидания истекает, прежде чем оно завершится успешно…

Я почти уверен, что проблема заключается в переменной $ ServerName, можно ли в любом случае проверить через Plesk Parallels, какова ее ценность?

     <?php
        $serverName = "server's ip address/database name"; //serverNameinstanceName
        $connectionInfo = array( "Database"=>"database name", "UID"=>"DBusername", "PWD"=>"DBpassword");
        $conn = sqlsrv_connect( $serverName, $connectionInfo);

        if( $conn ) {
             echo "Connection established.<br />";
        }else{
             echo "Connection could not be established.<br />";
             die( print_r( sqlsrv_errors(), true));
        }
    ?>
 

Комментарии:

1. Откройте командную строку в Windows и введите следующее: telnet ip_address 1433 . Каков результат?

2. C:Usersitay >telnet (IP-АДРЕС) 1433 Подключение к (IP-АДРЕС)… Не удалось открыть соединение с хостом на порту 1433: сбой подключения

3. Тогда есть проблема. Либо A. этот хост не принимает удаленные подключения к серверу SQL, B. сервер SQL не работает, либо C. сервер SQL не прослушивает порт по умолчанию 1433.

Ответ №1:

Попробуйте ввести точный номер порта в имя_сервера, например

 <?php
  $serverName=127.0.0.1SQLEXPRESS,1433; //networkAddrInstanceName,<portNum>
?>
 

Попробуйте использовать Ip-адрес вместо имени NetBIOS, если вы это сделаете, потому что протокол ICMP обычно блокируется из-за политики безопасности.

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

Ответ №2:

Проблема заключалась в том, что моему IP-адресу не было разрешено подключаться к базе данных, после того, как я поддержал своего хостинг-провайдера, они дали мне это разрешение, и это удалось.