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, и, наконец, ваши учетные данные. И это все!