Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
IvanC
Member

Откуда:
Сообщений: 103
Здравствуйте, формучане! Долго бился я над своей проблемой, но, может, от недостатка опыта, решил написать сюда. Имеется сервер на Ubuntu Server 18, apache2 + php 7.2 и MS SQL сервер на Windows Server 2003, мне нужно подключаться к этому серверу из php-скрипта. При соединении через консоль Ubuntu:
sqlcmd -S Server\Server -U sa -P sa
получаю ответ:
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Login timeout expired.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Error code 0x2AFA.
Sqlcmd: Error: Microsoft ODBC Driver 17 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..
. Сам сервер доступен, пингуется, пробовал telnet'ом подключаться к порту 1433, пишет: Connection refused, к 80 порту того же сервера соединяется.
Необходимые драйверы на PHP я установил:
<h2><a name="module_sqlsrv">sqlsrv</a></h2><table>
<tbody><tr class="h"><th>sqlsrv support</th><th>enabled</th></tr>
<tr><td class="e">ExtensionVer </td><td class="v">5.3.0 </td></tr>
</tbody></table>
, но почему-то не подгружается PDO_sqlsrv. Нужен ли он в данном случае? TCPDUMP показывает обмен данными с сервером, с других клиентов на Windows к серверу подключаюсь без проблем.
29 янв 19, 12:05    [21796653]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7762
IvanC,

если refused, сделайте так, чтобы не был refused.
29 янв 19, 12:08    [21796656]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
IvanC
Member

Откуда:
Сообщений: 103
у меня отключены все средства ограничения доступа: нет антивируса, отключен брендмауэр. При этом все остальные клиенты работают с данным сервером.
29 янв 19, 12:11    [21796662]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
IvanC,

xp_readerrorlog 0, 1, N'Server is listening on' 
29 янв 19, 12:14    [21796667]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
IvanC
Member

Откуда:
Сообщений: 103
Server is listening on [ 'any' <ipv4> 1093]. Этот порт тоже пробовал, но получаю ту же ошибку. Я правильно указываю:
sqlcmd -S Server\Server,1093 -U sa -P sa
?
29 янв 19, 12:18    [21796678]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
IvanC,

https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-a-server-to-listen-on-a-specific-tcp-port?view=sql-server-2017
29 янв 19, 12:28    [21796693]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
IvanC
Member

Откуда:
Сообщений: 103
Я это делал, ставил постоянный порт, но результат тот же. Да и по динамическому порту я б смог тогда подключиться
29 янв 19, 12:30    [21796698]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
IvanC
Member

Откуда:
Сообщений: 103
Добавлю еще 5 копеек. По всей видимости, сервер надо писать в кавычках:
sqlcmd -S "Server\Server,1093" -U sa -P sa

В данном случае получаю следующее:
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Error code 0x2746.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Client unable to establish connection.
29 янв 19, 13:00    [21796745]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
invm
Member

Откуда: Москва
Сообщений: 9349
sqlcmd -S Server,1093 -U sa -P sa
?
29 янв 19, 13:19    [21796781]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
IvanC
Member

Откуда:
Сообщений: 103
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Error code 0x2746.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Client unable to establish connection.
29 янв 19, 13:24    [21796785]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
IvanC,

ну а телнет на 1093?
29 янв 19, 13:28    [21796791]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
ну и вообще что в логах sql
29 янв 19, 13:29    [21796793]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
IvanC
Member

Откуда:
Сообщений: 103
Trying 192.168.1.1...
Connected to Server.

А в логах SQL ничего не нашел про то, что кто-то пытается подключиться...
29 янв 19, 13:49    [21796815]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
Дормедонт Евлампиевич
Member

Откуда:
Сообщений: 90
cat 20-pdo-sqlsrv.ini

; configuration for php mssql
; priority=20
extension=sqlsrv.so
extension=pdo_sqlsrv.so


Порядок важен...
29 янв 19, 14:48    [21796902]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
IvanC
Member

Откуда:
Сообщений: 103
Нет этого файла у меня ( буду завтра переустанавливать значит драйвер...
29 янв 19, 18:57    [21797232]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
IvanC
Member

Откуда:
Сообщений: 103
Продолжаю вчерашнюю тему, нашел я файл 30-pdo_sqlsrv.ini, скопировал его в папки apache2/conf.d, fpm/conf.d, cli/conf.d, в итоге в phpinfo у меня появилась
PDO drivers 	pgsql, sqlsrv 
, но php жалуется:
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_sqlsrv' (tried: /usr/lib/php/20170718/pdo_sqlsrv (/usr/lib/php/20170718/pdo_sqlsrv: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pdo_sqlsrv.so (/usr/lib/php/20170718/pdo_sqlsrv.so: undefined symbol: php_pdo_register_driver)) in Unknown on line 0

хотя файл там есть. Соединение все так же не устанавливается
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Error code 0x2746.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Client unable to establish connection.

но через командную строку SQL сервера все замечательно работает с той же строкой подключения. В чем может быть причина? Уже голову сломал. Спасибо.
30 янв 19, 12:11    [21797628]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
IvanC,

Ну теперь ищите как настроить ODBC в ubuntu
30 янв 19, 12:16    [21797636]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
IvanC
Member

Откуда:
Сообщений: 103
Спасибо, я, конечно, сделал через FreeTDS, но до сих пор совесть мучает, почему так и не разобрался с Microsoft ODBC Driver 17 for SQL Server. Ну ладно, не судьба уже. Спасибо всем, кто откликнулся!
30 янв 19, 12:32    [21797673]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
IvanC,

сиквел какой, экспресс? если да то включай работу по TCP, в экспере она по умолчанию отрублена.
30 янв 19, 14:33    [21797809]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
IvanC
Member

Откуда:
Сообщений: 103
Нет, MS SQL Server 2005, TCP включена, что подтверждает работа sqlcmd на сервере. Сегодня через odbc работал, какой-то он кривой... odbc_num_rows возвращает -1, хотя записи там точно есть. Буду курить дальше pdo driver
31 янв 19, 08:34    [21798420]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
IvanC
Member

Откуда:
Сообщений: 103
Отвечу, скорее всего сам. По всей видимости, драйвер устанавливает соединение через TLS 1.2, что сервер не поддерживает. Отсюда и ошибки... Возможно ли отключить необходимость использования этого протокола?
31 янв 19, 09:39    [21798459]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
IvanC
Отвечу, скорее всего сам. По всей видимости, драйвер устанавливает соединение через TLS 1.2, что сервер не поддерживает. Отсюда и ошибки... Возможно ли отключить необходимость использования этого протокола?

https://support.microsoft.com/en-hk/help/3135244/tls-1-2-support-for-microsoft-sql-server
31 янв 19, 09:41    [21798463]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к MS SQL Server 2005 из PHP7.2 на Ubuntu Server 18  [new]
IvanC
Member

Откуда:
Сообщений: 103
Там статья про сервер, у меня MS Server 2003, поэтому про поддержку TLS 1.2 можно забыть, но вот на стороне самого драйвера возможно ли отключение этого протокола и использование более старой версии?
31 янв 19, 09:48    [21798467]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить