2015-04-15 6 views
3

У меня возникли проблемы с подключением к Microsoft SQL Server 2012 с моего сервера FreeBSD 10.1.«Неизвестное имя хост-машины». на FreeBSD + unixODBC + FreeTDS

Я установил FreeTDS и unixODBC через порты. Я собрал FreeTDS с поддержкой unixODBC. Это ist мой freetds.conf:

[server1] 
     host = 192.168.100.147 
     port = 1433 
     tds version = 7.2 

Вызов tsql отлично работает.

Но когда я пытаюсь подключиться с помощью ODBC с "OSQL" или "ISQL" присоединительные failes со следующей ошибкой:

checking shared odbc libraries linked to isql for default directories... 
    trying /tOH ... no 
    trying /tOH ... no 
    trying /tmp/sqlH ... no 
    trying /tmp/sqlH ... no 
    trying /usr/locH ... no 
    trying /usr/locH ... no 
    trying /tmp/sql.log ... no 
    trying /home ... no 
    trying /.odbc.ini ... no 
    trying /usr/local/etc ... OK 
checking odbc.ini files 
    reading /root/.odbc.ini 
[server1] not found in /root/.odbc.ini 
    reading /usr/local/etc/odbc.ini 
[server1] found in /usr/local/etc/odbc.ini 
found this section: 
    [server1] 
     Driver = FreeTDS 
     Servername = server1 
looking for driver for DSN [server1] in /usr/local/etc/odbc.ini 
    found driver line: "  Driver = FreeTDS" 
    driver "FreeTDS" found for [server1] in odbc.ini 
found driver named "FreeTDS" 
"FreeTDS" is not an executable file 
looking for entry named [FreeTDS] in /usr/local/etc/odbcinst.ini 
    found driver line: "  Driver = /usr/local/lib/libtdsodbc.so" 
    found driver /usr/local/lib/libtdsodbc.so for [FreeTDS] in odbcinst.ini 
/usr/local/lib/libtdsodbc.so is an executable file 
Using ODBC-Combined strategy 
DSN [server1] has servername "server1" (from /usr/local/etc/odbc.ini) 
cannot read "/root/.freetds.conf" 
/usr/local/etc/freetds/freetds.conf is a readable file 
looking for [server1] in /usr/local/etc/freetds/freetds.conf 
found this section: 
    [server1] 
     host = 192.168.100.147 
     port = 1433 
     tds version = 7.2 
looking up hostname for ip address 192.168.100.147 

Configuration looks OK. Connection details: 

        DSN: server1 
       odbc.ini: /usr/local/etc/odbc.ini 
       Driver: /usr/local/lib/libtdsodbc.so 
     Server hostname: sqlsrv01 
       Address: 192.168.100.147 

Attempting connection as sa ... 
+ isql server1 sa foobar -v 
[S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source 
[01000][unixODBC][FreeTDS][SQL Server]Unknown host machine name. 
[ISQL]ERROR: Could not SQLConnect 

Это содержание моего ODBC.ini:

[server1] 
    Driver = FreeTDS 
    Servername = server1 

И это мой odbcinst.ini:

[FreeTDS] 
    Driver = /usr/local/lib/libtdsodbc.so 
    Client Charset = UTF-8 
    UsageCount = 1 

Я прочитал severeal сообщения относительно к использованию именования инфа odbc.i ni и freetds.conf, но соединение продолжает терпеть неудачу.

Может ли кто-нибудь помочь?

+1

Попробуйте задать этот вопрос на [ServerFault] (http://serverfault.com/), поскольку это связано с администрированием сервера и не имеет никакого отношения к программированию. – Antxon

+1

сделаю. Благодарю. :) – st4rbuck

+0

Я голосую, чтобы закрыть этот вопрос как не относящийся к теме, потому что он должен быть перенесен в ServerFault. –

ответ

4

Теперь я могу ответить на свой вопрос.

После намека от рассылки UnixODBC Link я вызван

odbcinst -i -s -f /usr/local/etc/odbc.ini 

и теперь я могу подключиться к серверу через OSQL.

+0

не работает для меня: \ – Ryosaku

+0

@Ryosaku Можете ли вы открыть для него новый вопрос и вставить содержимое своего odbc.ini? – st4rbuck