У нас есть машина Windows, работающая под управлением SQL Server 2005, и нам нужно иметь возможность запускать некоторые запросы к базе данных в Linux из окна Linux. Каковы некоторые из рекомендуемых способов сделать это? В идеале нам понадобится утилита командной строки, подобная sqlcmd для Windows.
Каковы некоторые способы доступа к Microsoft SQL Server из Linux?
Ответ 1
Установите сначала FreeTDS, затем настройте один из двух ODBC-движков, чтобы использовать FreeTDS в качестве своего драйвера ODBC. Затем используйте интерфейс командной строки для механизма ODBC.
unixODBC имеет isql, iODBC имеет iodbctest
Вы также можете использовать свой любимый язык программирования (я успешно использовал Perl, C, Python и Ruby для подключения к MSSQL)
Я лично использую FreeTDS + iODBC:
$more /etc/freetds/freetds.conf
[10.0.1.251]
host = 10.0.1.251
port = 1433
tds version = 8.0
$ more /etc/odbc.ini
[ACCT]
Driver = /usr/local/freetds/lib/libtdsodbc.so
Description = ODBC to SQLServer via FreeTDS
Trace = No
Servername = 10.0.1.251
Database = accounts_ver8
Ответ 2
sqsh (http://www.sqsh.org/) + freetds (http://www.freetds.org)
sqsh была прежде всего заменой isql для Sybase SQL Server (теперь ASE), но она отлично подходит для подключения к SQL Server (при использовании freetds).
Чтобы скомпилировать, просто укажите $SYBASE для установки freetds, и он должен работать оттуда. Я использую его на своем Mac весь день.
Лучшая часть sqsh - это расширенные функции, такие как мертвое простое связывание серверов (нет необходимости устанавливать связанные серверы в SQL Server), управление потоком и цикл (не более конкатенации строк и выполнение динамического SQL), а также невидимую массу копирования/нагрузки.
Любой, кто использует любой другой инструмент командной строки, просто сумасшедший!:)
Ответ 3
sql-cli - это интерфейс командной строки с платформой на основе nodejs для сервера sql. Вы можете установить его через npm https://www.npmjs.org/package/sql-cli
Он может подключаться как к внутреннему, так и к sql-azure экземпляру.
Ответ 4
pymssql - это модуль Python DB-API, основанный на FreeTDS. Это сработало для меня. Создайте некоторые вспомогательные функции, если вам нужно, и используйте их из оболочки Python.
Ответ 5
Mono содержит поставщика ADO.NET, который должен сделать это за вас. Я не знаю, есть ли для него утилита командной строки, но вы можете определенно завершить некоторые С# для выполнения запросов, если этого не произойдет.
Посмотрите http://www.mono-project.com/TDS_Providers и http://www.mono-project.com/SQLClient
Ответ 6
Поскольку ноябрь 2011 г. Microsoft предоставляет свой собственный драйвер ODBC для SQL Server для Linux для Red Hat Enterprise Linux (RHEL) и SUSE Linux Enterprise Server (SLES).
- Загрузить Microsoft ODBC Driver 11 для SQL Server в Red Hat Linux
- Загрузить Microsoft ODBC Driver 11 для SQL Server на SUSE - CTP
- Драйвер ODBC для документации Linux
Он также включает sqlcmd
для Linux.
Ответ 7
Если вы используете Java, посмотрите JDBC.
http://msdn.microsoft.com/en-us/library/ms378672(SQL.90).aspx
Ответ 8
Вы не говорите, что хотите делать с результирующими данными, но если бы это были общие запросы для разработки/обслуживания, я бы подумал, что Remote Desktop на сервер Windows, а затем с помощью реальных инструментов SQL Server на них будет всегда были более продуктивным вариантом для любого взломанного решения на самой Linux.
Ответ 9
Для PHP существует абстракция lib. Не уверен, что будет поддерживать ваш клиентский блок, но если его Linux, безусловно, должен поддерживать создание интерфейса запросов PHP с помощью этого: http://adodb.sourceforge.net/ Надеюсь, что это поможет.
Ответ 10
Я не был спокоен с решением freetds, это почему я закодировал класс (история команд, автозаполнение таблиц и полей и т.д.).
http://www.phpclasses.org/package/8168-PHP-Use-ncurses-to-get-key-inputs-and-write-shell-text.html