什么是从Linux访问Microsoft SQL Server的一些方法?
我们有一台运行SQL Server 2005的Windows机器,我们需要能够从Linux机器上运行一些数据库查询。 推荐的方法是什么? 理想情况下,我们需要一个类似于Windows上的sqlcmd的命令行实用程序。
FreeTDS + unixODBC或iODBC
首先安装FreeTDS,然后configuration两个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
sqsh( http://www.sqsh.org/ )+ freetds( http://www.freetds.org )
sqsh主要是Sybase SQL Server(现在是ASE)的isql替代品,但是对于连接到SQL Server(提供您使用freetds),它工作得很好。
要进行编译,只需将$ SYBASE指向freetds install,就可以从那里开始工作。 我整天在我的Mac上使用它。
sqsh最好的部分是高级function,比如死锁简单的服务器链接(不需要在SQL Server中设置链接的服务器),stream量控制和循环(不再串联string并执行dynamicSQL),以及不可见的批量复制/加载。
任何使用其他命令行工具的人都很疯狂! 🙂
sql-cli是一个基于nodejs的跨平台的sql server命令行界面。 你可以通过npm https://www.npmjs.org/package/sql-cli来安装;
它可以连接到内部部署和SQL Azure实例。
pymssql是一个基于FreeTDS的DB-API Python模块。 它为我工作。 如果需要的话,创build一些辅助函数,并从Python shell中使用它。
单声道包含一个ADO.NET提供程序,应该为您做这个。 我不知道是否有一个命令行工具,但你可以肯定包装了一些C#做的查询,如果没有。
看看http://www.mono-project.com/TDS_Providers和http://www.mono-project.com/SQLClient
如果您正在使用Java,请查看JDBC。
http://msdn.microsoft.com/en-us/library/ms378672(SQL.90).aspx
自2011年11月以来,Microsoft为Red Hat Enterprise Linux(RHEL)和SUSE Linux Enterprise Server(SLES)提供了自己的SQL Server ODBC驱动程序 。
- 在Red Hat Linux上为SQL Server下载Microsoft ODBC Driver 11
- 在SUSE-CTP上为SQL Server下载Microsoft ODBC驱动程序11
- Linux文档上的ODBC驱动程序
它还包括Linux的sqlcmd
。
你不会说你想要怎么处理结果数据,但是如果它是开发/维护的一般查询,那么我会认为远程桌面到Windows服务器,然后使用他们的实际SQL Server工具将永远一个比Linux上任何黑客入侵的解决scheme更高效的select。
有一个抽象的lib可用于PHP。 不知道你的客户端的盒子将支持,但如果它的Linux当然应该支持build立一个PHP查询接口: http : //adodb.sourceforge.net/希望可以帮助你。
我没有freetds解决scheme的舒适,这就是为什么我编写了一个类(命令历史,在表和字段上的自动完成等)
http://www.phpclasses.org/package/8168-PHP-Use-ncurses-to-get-key-inputs-and-write-shell-text.html