MSSQL соединение из Ubuntu

Мне нужно простое и полное руководство по созданию соединения MSSQL из Ubuntu.

Я думаю, что установил FreeTDS и UnixODBC, но конфигурации очень сложные, я не понял проблему.

Я следовал этому руководству: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/wiki/Platform-Installation---Ubuntu

Но я потерпел неудачу.

root@hackmachine:~# isql -v example.com XXXXX XXXXXXX
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
root@hackmachine:~# 

Редактировать:

До этого редактировать "/etc/odbcinst.ini" и "/etc/odbc.ini" было пусто.

Я добавил эти строки в /etc/odbcinst.ini:

[FreeTDS]

Description     = TDS driver (Sybase/MS SQL)

Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so

CPTimeout       =

CPReuse         =

FileUsage       = 1

Я добавил эти строки в /etc/odbc.ini:

[project_development]
Driver = FreeTDS
Description     = ODBC connection via FreeTDS
Trace           = No
Servername      = developer
Database        = project_development

[project_test]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = developer
Database = test

[project_production]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = production
Database = project_production

Я не делал никаких изменений в /etc/freetds/freetds.conf с самого начала.

Тем не менее, ничего не изменилось.

6 ответов

Решение

Вот пошаговые инструкции (можно найти здесь):

Сначала установите unixODBC:

sudo apt-get install unixodbc unixodbc-dev

Я также установил следующие (возможно необходимые) пакеты:

sudo apt-get install tdsodbc php5-odbc

Затем загрузите, распакуйте, скомпилируйте и установите FreeTDS (предупреждение, URL может измениться):

cd /usr/local

wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
tar xvfz freetds-stable.tgz
cd freetds-0.82
./configure --enable-msdblib --with-tdsver=8.0 --with-unixodbc=/usr
make
make install
make clean

Попробуйте подключиться через Telnet к вашему экземпляру SQL Server:

telnet 192.168.0.1 1433

Используйте инструмент tsql для проверки соединения:

tsql -S 192.168.0.1 -U devuser

Это должно запросить у вас пароль, после чего вы можете надеяться увидеть этот красивый знак:

1>

Если это сработало, я рекомендую устроить вечеринку (кодирование). Далее немного настройки. Откройте файл конфигурации FreeTDS. /usr/local/etc/freetds.conf

Добавьте следующую запись в конец файла. Мы настраиваем имя источника данных (DSN) под названием "MSSQL".

[MSSQL]
host = 192.168.0.1
port = 1433
tds version = 8.0

Теперь откройте файл конфигурации ODBC: /usr/local/etc/odbcinst.ini

И добавьте следующую запись драйвера MSSQL (FreeTDS) в конце:

[FreeTDS]
Description = FreeTDS driver
Driver = /usr/local/lib/libtdsodbc.so
Setup=/usr/lib/odbc/libtdsS.so
FileUsage = 1
UsageCount = 1

Затем, наконец, настройте DSN в ODBC в файле odbc.ini здесь /usr/local/etc/odbc.ini, добавив этот бит в файл:

[MSSQL]
Description = MS SQL Server
Driver = /usr/local/lib/libtdsodbc.so
Server = 192.168.2.3
UID = devuser
PWD = devpass
ReadOnly = No
Port = 1433

Проверьте соединение с помощью инструмента isql:

isql -v MSSQL devuser 'devpass'

Если вы видите "Подключен!", Вы - золотой, поздравляю! Если нет, то я искренне сожалею; смотрите ниже, где есть некоторые ресурсы, которые могут помочь.

Теперь перезапустите Apache и протестируйте его из PHP, используя "MSSQL" в качестве DSN. Если что-то не работает, вы можете попробовать установить один или все эти пакеты: mdbtools libmdbodbc libmdbtools mdbtools-gmdb

В Trusty 14.04 у меня были проблемы с созданием http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz

Когда я попытался запустить tsql команда, я узнал tsql можно установить через apt:

$ sudo apt-get install freetds-bin

Чтобы подключиться к экземпляру MSSQL, запущенному на удаленном сервере:

Выполните соответствующие шаги в этой статье https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/connection-string-keywords-and-data-source-names-dsns?view=sql-server-2017

ПРИМЕЧАНИЕ. Чтобы завершить тесты, вам нужно сделать еще несколько вещей: Отредактируйте /etc/odbc.ini и добавьте следующее:

[MSSQL] Driver=ODBC Driver 17 for SQL Server Server=[ServerIP][,1433]

Для выполнения теста выполните в терминале следующее:

isql -v MSSQL [имя пользователя] [пароль]

Вы должны увидеть "связанный" ответ.

Если вы боретесь, убедитесь, что порты на вашем сервере Linux и Windows открыты!

Чтобы ответить на вопрос, подразумеваемый:

Мне нужен простой и полный учебник для создания подключения MSSQL из Ubuntu

... и игнорируя все настройки FreeTDS.

Используйте mssql-cli ( установка, использование).

Я должен был сделать это для Ubuntu 14.04 и 17.04, оба LTS 64-bit. Вероятно, работает для более поздних версий.

Установите unixodbc (соединения ODBC), freetds (соединения SQL Server) и tdsodbc (мост между первыми двумя)

sudo apt install unixodbc freetds-bin tdsodbc

Добавьте драйверы ODBC в /etc/odbcinst.ini (должен быть пустым)

[SQL Server]
Description = FreeTDS driver
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
FileUsage = 1
UsageCount = 1

Добавьте свои DSN в /etc/odbc.ini (также должен быть пустым)

[ACCOUNTING]
Description = Accounting database
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Server = 123.123.123.123
Database = your_database_name
Port = 1433

И это было все.

Надеюсь, вы скопировали содержимое в ссылку на файл. Вам необходимо обновить данные вашего сервера SQL в файле "/etc/odbc.ini". Вы можете ссылаться на ссылку http://guywyant.info/log/206/connecting-to-ms-sql-server-from-ubuntu/

Я работаю в компании, которая интенсивно использует продукты Microsoft. Однако я предпочитаю работать на машине с Linux (Ubuntu). В частности, я использую Ubuntu 16.04 LTS.

Я использую JetBrains DataGrip или SQL Electron в качестве графического интерфейса SQL. Для DataGrip потребуется Microsoft JDBC Driver для SQL Server, на который вам нужно указать вручную при первом открытии DataGrip. Я положил это в /usr/share/java/, но где угодно будет работать.

Подключение просто на моем ноутбуке с Windows 10. Я просто открываю SQL Server Management Studio и использую свои учетные данные для входа в систему (имя пользователя + пароль); Я не использую аутентификацию Windows.

Предпосылки

Для подключения из Ubuntu это немного (совсем немного) дополнительной работы. Сначала на компьютере с Windows 10 я открываю терминал Powershell и набираю

nslookup <server name here>

и он возвращает что-то вроде

Non-authoritative answer:
Name: <server name here>
Address: <server's address>

Имя и адрес сервера будут статическими, поэтому вышеперечисленное потребуется для запуска только один раз для каждого сервера, к которому вы пытаетесь получить доступ.

DataGrip

Затем я запрыгиваю на свой компьютер с Linux и открываю DataGrip. Для Host Я печатаю в <server's address>Порт: 1433 (по умолчанию для MS SQL Server). URL должен выглядеть примерно так:

URL: jdbc:sqlserver://<server's address>:1433

Если вы нажмете на Test Connection, он запросит у вас информацию для входа, если вы еще этого не добавили. И это все для DataGrip!

DataGrip также имеет следующий блог, который может быть полезен для новых пользователей: Подключение DataGrip к MS SQL Server

SQL Electron

Если вы не хотите покупать DataGrip, вы можете использовать SQL Electron. Шаги похожи. Откройте SQL Electron, нажмите кнопку Добавить, чтобы добавить новый сервер, и для Server Address введите <server's address>, Порт: 1433, и, наконец, ваши учетные данные. И это все!

Другие вопросы по тегам