linux外网sql server,从Linux访问Microsoft SQL Server有哪些方法?

从Linux访问Microsoft SQL Server有哪些方法?

我们有一台运行SQL Server 2005的Windows计算机,我们需要能够在Linux机器上对其运行一些数据库查询。 建议采取哪些方法? 理想情况下,我们需要类似于Windows上的sqlcmd的命令行实用程序。

cwick asked 2020-02-14T11:27:44Z

13个解决方案

31 votes

FreeTDS + unixODBC或iODBC

首先安装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

Vinko Vrsalovic answered 2020-02-14T11:28:11Z

16 votes

sql-cli是用于SQL Server的基于nodejs的跨平台命令行界面。 您可以通过npm [https://www.npmjs.org/package/sql-cli]进行安装

它可以同时连接到本地实例和SQL Azure实例。

Muhammad Hasan Khan answered 2020-02-14T11:28:35Z

10 votes

sqsh([http://www.sqsh.org/)] + freetds([http://www.freetds.org)]

sqsh主要是Sybase SQL Server(现为ASE)的isql替代品,但它可以很好地用于连接到SQL Server(前提是您使用freetds)。

要进行编译,只需将$ SYBASE指向freetds install,它应该可以从那里工作。 我整天在Mac上使用它。

sqsh最好的部分是高级功能,例如简单的死服务器链接(无需在SQL Server中设置链接服务器),流控制和循环(不再连接字符串和执行动态SQL)以及不可见的批量复制/加载 。

使用任何其他命令行工具的人简直是疯了! :)

Matt Rogish answered 2020-02-14T11:29:13Z

6 votes

pymssql是基于FreeTDS的DB-API Python模块。 它为我工作。 如果需要,请创建一些辅助函数,然后从Python Shell中使用它。

Constantin answered 2020-02-14T11:29:36Z

5 votes

Mono包含应该为您执行此操作的ADO.NET提供程序。 我不知道是否有命令行实用程序,但是如果没有,您可以打包一些C#进行查询。

看看[http://www.mono-project.com/TDS_Providers]和[http://www.mono-project.com/SQLClient]

SteinNorheim answered 2020-02-14T11:30:05Z

4 votes

自2011年11月起,Microsoft提供了自己的适用于Linux的SQL Server ODBC驱动程序,用于Red Hat Enterprise Linux(RHEL)和SUSE Linux Enterprise Server(SLES)。

在Red Hat Linux上为SQL Server下载Microsoft ODBC Driver 11

在SUSE-CTP上为SQL Server下载Microsoft ODBC Driver 11

Linux文档上的ODBC驱动程序

它还包括用于Linux的sqlcmd。

mleu answered 2020-02-14T11:30:45Z

3 votes

如果您使用Java,请查看JDBC。

[http://msdn.microsoft.com/en-us/library/ms378672(SQL.90).aspx]

[http://en.wikipedia.org/wiki/Jdbc]

borjab answered 2020-02-14T11:31:13Z

2 votes

您没有说要对结果数据做什么,但是如果是对开发/维护的一般查询,那么我会认为将远程桌面连接到Windows服务器,然后在其上使用实际的SQL Server工具将一直是 相对于Linux本身上所有被黑的解决方案而言,这是一个更具生产力的选择。

Cruachan answered 2020-02-14T11:31:34Z

2 votes

有一个可用于PHP的抽象库。 不确定您的客户支持什么,但是如果它的Linux确实可以支持使用以下方式构建PHP查询接口:[http://adodb.sourceforge.net/]希望对您有所帮助。

Taptronic answered 2020-02-14T11:31:54Z

0 votes

我对freetds解决方案不满意,这就是为什么我编写了一个类(命令历史记录,表和字段的自动完成等)的原因

[http://www.phpclasses.org/package/8168-PHP-Use-ncurses-to-get-key-inputs-and-write-shell-text.html]

François Neumann-rystow answered 2020-02-14T11:32:19Z

0 votes

valentina-db它具有针对SQL Server的免费版本

.rpm和.deb

注册后将通过电子邮件发送序列号

[https://www.valentina-db.com/en/]

[https://valentina-db.com/en/store/category/14-free-products]

1vERC.png

mohsen.nour answered 2020-02-14T11:32:59Z

0 votes

如果使用eclipse,则可以在其上安装Data Tools Platform插件,并将其用于包括MS SQLServer在内的每个数据库引擎。 它只需要获取该数据库引擎的JDBC驱动程序即可。

Mehdi answered 2020-02-14T11:33:20Z

0 votes

现在有一个不错的基于CLI的工具可以访问MSSQL数据库。

它称为pip,与postgres的sudo有点类似。

Github存储库页面

例如,通过pip安装(全局安装,对于本地用户则省略sudo部分):

sudo pip install mssql-cli

helvete answered 2020-02-14T11:33:53Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值