来自Ubuntu的MSSQL连接

我需要一个简单而完整的教程来从Ubuntu建立MSSQL连接。

我想我安装了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”做任何改动。

但是,一切都没有改变。

这是一步一步的说明(在这里找到) :

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

将以下条目添加到文件的底部。 我们正在设置一个名为“MSSQL”的数据源名称(DSN)。

 [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 

然后,最后在odbc.ini文件中设置ODBC中的DSN /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并使用’MSSQL’作为DSN从PHP进行测试。 如果某些东西不起作用,您可以尝试安装任何或所有这些软件包:mdbtools libmdbodbc libmdbtools mdbtools-gmdb

在Trusty 14.04上我遇到了问题http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz

当我尝试运行tsql命令时,我发现可以通过apt安装tsql:

 $ sudo apt-get install freetds-bin 

希望您已将链接中的内容复制到文件中。 您需要在“/etc/odbc.ini”文件中更新SQL Server详细信息。 你可以参考链接http://guywyant.info/log/206/connecting-to-ms-sql-server-from-ubuntu/

我必须为Ubuntu 14.04和17.04执行此操作,两者都是LTS 64位。 可能适用于更高版本。

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

这就是全部。

回答以下问题隐含的问题:

我需要一个简单而完整的教程来从Ubuntu建立MSSQL连接

…并忽略所有FreeTDS设置内容。

使用mssql-cli ( 安装 , 使用 )。

我在一家大量使用微软产品的公司工作。 但是,我更喜欢在Linux机器上工作(Ubuntu)。 具体来说,我使用Ubuntu 16.04 LTS

我使用JetBrains的DataGrip或SQL Electron作为SQL GUI。 DataGrip将需要用于SQL Server的Microsoft JDBC驱动程序,当您第一次打开DataGrip时,需要手动指向该驱动程序 。 我把它放在/usr/share/java/ ,但是任何地方都可以。

在我的Windows 10笔记本电脑上连接很简单。 我只需打开SQL Server Management Studio,并使用我的凭据登录(用户名+密码); 我不使用Windows身份validation。

先决条件

为了从Ubuntu连接,它有点( 只是一点点 )额外的工作。 首先,在我的Windows 10机器上,打开一个Powershell终端,输入以下内容

 nslookup  

它会返回类似的内容

 Non-authoritative answer: Name:  Address:  

服务器的名称和地址将是静态的,因此上述只需要在您尝试访问的每台服务器上运行一次。

DataGrip

然后,我跳到我的Linux机器上并打开DataGrip。 对于Host我输入 ,端口:1433(这是MS SQL Server的默认设置)。 URL应该看起来像,

 URL: jdbc:sqlserver://:1433 

如果单击“ Test Connection ,如果尚未添加,则会提示您输入登录信息。 这就是DataGrip!

DataGrip还有以下博客,可能对新用户有所帮助: 将DataGrip连接到MS SQL Server

SQL电子

如果您不想购买DataGrip,可以使用SQL Electron。 步骤类似。 打开SQL Electron,单击添加以添加新服务器,然后单击 Server Address类型,端口:1433,最后输入您的登录凭据。 就是这样!