2016-06-01 14 views
0

Я работаю с уже построенной базой данных на платформе Server 2008 Server R2 и хочу создать приложение для запроса указанной БД.подключиться к сопоставленному серверу SQL через PHP

Весь мой опыт работы с локальными установками MySQL, однако эта база данных является MS SQL-сервером 10.50.

Мой вопрос таков: SQL-сервер - это сопоставленный диск на веб-сервере, у меня есть все правильные PHP-драйверы и расширения SQLsrv, и я получаю правильные считывания phpinfo, все работает нормально, но я о том, как подключиться к SQL-серверу. Чтобы уточнить,

Мое приложение работает на веб-сервере, я хочу подключиться через php к серверу SQL, который сопоставляется с веб-сервером. Я использую проверку подлинности Windows.

Соединение PHP я написал до сих пор выглядит как этот

<?php 
$serverName = "SmartCM.IMG"; 


$connectionInfo = array("Database"=>"SMARTCM"); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 

if($conn) { 
    echo "Connection established.<br />"; 
}else{ 
    echo "I tried, but it didn't work out... sorry.<br /><br><br><br>"; 
    die(print_r(sqlsrv_errors(), true)); 
} 
?> 

Это ошибка зачитывает я получаю

Array ( 
    [0] => Array ( 
     [0] => 08001 
     [SQLSTATE] => 08001 
     [1] => 53 
     [code] => 53 
     [2] => [Microsoft][ODBC Driver 11 for SQL Server]Named Pipes Provider: Could not open a connection to SQL Server [53]. 
     [message] => [Microsoft][ODBC Driver 11 for SQL Server]Named Pipes Provider: Could not open a connection to SQL Server [53].) 
    [1] => Array ( 
     [0] => HYT00 
     [SQLSTATE] => HYT00 
     [1] => 0 
     [code] => 0 
     [2] => [Microsoft][ODBC Driver 11 for SQL Server]Login timeout expired 
     [message] => [Microsoft][ODBC Driver 11 for SQL Server]Login timeout expired) 
    [2] => Array ( 
     [0] => 08001 
     [SQLSTATE] => 08001 
     [1] => 53 
     [code] => 53 
     [2] => [Microsoft][ODBC Driver 11 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online. 
     [message] => [Microsoft][ODBC Driver 11 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.) 
    ) 
+0

Проверьте эту страницу: http://stackoverflow.com/questions/9746245/how-to-turn-mysql-strings-into-sql-server-equivalents – Chuck

ответ

0

Named Pipes Provider: Не удалось открыть подключение к SQL Сервер

Необходимо, чтобы включить Именованный P IPES:

Open Configuration Manager SQL -> Конфигурация сети сервера SQL -> Протоколы -> Named Pipes -> правой кнопкой мыши -> Restart

сеть связанных или ошибка, специфичная произошло в то время как установление соединения с SQL Server. Сервер не найден или недоступен. Проверьте правильность имени экземпляра и если SQL Server настроен на разрешение удаленных подключений. Дополнительные сведения см. В электронной документации по SQL Server.

Используйте правильные имена серверов и экземпляров (вам необходимо определить оба), например PC\SQLEXPRESS.

Также проверьте, если соединение TCP/IP включена:

Open SQL Configuration Manager -> Конфигурация сети SQL Server -> Протоколы -> TCP/IP -> правой кнопкой мыши -> Restart

Проверьте, блокирует ли брандмауэр соединение на порту 1433.

+0

отлично информация, спасибо! Мне удалось открыть именованные каналы. У меня все еще возникают проблемы с получением фактического соединения. Я проверял, что имя экземпляра должно быть MSSQLSERVER, но я нажимаю на имя сервера ... Я знаю, что обычно это должен быть localhost или IP, но так как я «Я хочу подключиться к сопоставленному диску, я не уверен ... я даже не уверен, что это возможно. Я пробовал подключение к самому диску «\\ WIND2k8R2-SQL», и это имя «SmartCM.IMG». Я также пробовал IP, но я решил, что это не сработает, поскольку две машины используют внешний IP-адрес. – zhwatts

+0

Попробуйте machine_name_of_pc_on_which_sql_is_running \ SmartCM.IMG, например, мое имя pc - это «mypc», и я запускаю экземпляр с именем «test». Имя, которое я должен подключить, будет «mypc \ test». – gofr1

+0

Кажется, у меня был неправильный IP-адрес, теперь у меня есть соединение. Благодаря! – zhwatts

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