来自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,最后输入您的登录凭据。 就是这样!