Соединение с сервером MSSQL с помощью sqlcmd и odbc драйвером на сбоях RHEL 6

Я провел прошлый час, пытаясь соединиться с mssql сервером с помощью sqlcmd через odbc драйвер. Я говорил с парнем дб, но у него, кажется, нет подсказки, что продолжается.. Возможно, можно выручить меня для нахождения некоторых вопросов, я мог спросить того парня..

Я использую официальный odbc драйвер от Microsoft. Aparently мы используем своего рода динамические порты.

Нет никаких промежуточных брандмауэров.

# odbcinst -q -d -n
[PostgreSQL]
[MySQL]
[ODBC Driver 11 for SQL Server]

Я попробовал его различные пути

Код ошибки 0x2AF9:

sqlcmd -S hostname\DEV04 -U username -P password
Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : Login timeout expired.
Sqlcmd: Error: 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..
Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : TCP Provider: Error code 0x2AF9.

и

Ошибка, Определяющая местоположение Сервера/Экземпляра, Указанного [xFFFFFFFF].

sqlcmd -S hostname\\DEV04 -U username -P password
Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : Login timeout expired.
Sqlcmd: Error: 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..
Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF]. 

Используя жемчуг

DBI connect('DASHBOARD','username',...) failed: [unixODBC][Microsoft][ODBC Driver 11 for SQL Server]Login timeout expired (SQL-HYT00) [state was HYT00 now 08001]
[unixODBC][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. (SQL-08001)
[unixODBC][Microsoft][ODBC Driver 11 for SQL Server]SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].  (SQL-08001) at ./test.pl line 4
Can't connect to : [unixODBC][Microsoft][ODBC Driver 11 for SQL Server]Login timeout expired (SQL-HYT00) [state was HYT00 now 08001]
[unixODBC][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. (SQL-08001)
[unixODBC][Microsoft][ODBC Driver 11 for SQL Server]SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].  (SQL-08001) at ./test.pl line 4.
4
задан 27 February 2014 в 15:01
3 ответа

Я столкнулся с аналогичной проблемой. Оказывается, что часть \ DEV04 в имени хоста \ DEV04 используется, чтобы указать, что клиент должен подключаться к серверу через порт, отличный от порта по умолчанию. В мире Microsoft использование DEV04 автоматически гарантирует, что клиент подключается к правильному порту ... но, похоже, это не работает с Linux sqlcmd.

Спросите администратора SQL Server, какой порт Экземпляр \ DEV04 прослушивает и подключается, используя имя хоста, PORT

0
ответ дан 3 December 2019 в 04:26

Прочитав эту ветку: https://github.com/Microsoft/msphpsql/issues/190

Мне нужно было узнать другой номер порта, который SQL Server прослушивал, выполнив

USE MASTER 
GO 
xp_readerrorlog 0, 1, N'Server is listening on' 
GO

Результат

2018-04-12 03:19:57.830 Server       Server is listening on [ 'any' <ipv6> 49155].                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
2018-04-12 03:19:57.830 Server       Server is listening on [ 'any' <ipv4> 49155]. 

добавив правило для брандмауэра Windows на Хост SQL Server: - включение определенного порта 49155 (я думаю, это может быть разным)

Затем эта команда успешно прошла на моем компьютере с Ubuntu:

sqlcmd -Smyhost,49155 -U sa -P sa_pwd -d mydb -Q "select @@servername"
0
ответ дан 3 December 2019 в 04:26

На основе рекламного сообщения отсюда: https://social.msdn.microsoft.com/Forums/sqlserver/en-US/36b8956e-0218-44aa-b717-725fe1d601f9/ error-in-sqlserver-odbc-dirver-for-linux? forum = sqldataaccess

Протокол UDP просто не будет работать в Linux с использованием предоставленных Microsoft инструментов ODBC и sqlcmd. Часть UDP изначально используется для проверки сервера, чтобы найти TCP-порт, который прослушивает запрошенная база данных.

В моей работе я использую решение, чтобы переключиться на pymssql, который будет работать с именованным экземпляром и запросами порта UDP.

0
ответ дан 3 December 2019 в 04:26

Теги

Похожие вопросы