![在适用于 Windows 的 Linux 子系统上安装适用于 Linux 的 SQL Server ODBC 驱动程序](https://linux22.com/image/1503519/%E5%9C%A8%E9%80%82%E7%94%A8%E4%BA%8E%20Windows%20%E7%9A%84%20Linux%20%E5%AD%90%E7%B3%BB%E7%BB%9F%E4%B8%8A%E5%AE%89%E8%A3%85%E9%80%82%E7%94%A8%E4%BA%8E%20Linux%20%E7%9A%84%20SQL%20Server%20ODBC%20%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F.png)
我正在尝试在适用于 Windows 的 Linux 子系统上安装适用于 Linux 的 SQL Server ODBC 驱动程序,是否有人知道是否支持这种情况。
Ubuntu Trusty 中似乎缺少此驱动程序所需的库依赖项。
有人成功在 lxss 上安装并运行此驱动程序吗?
*** 更多详细信息我按照此处的驱动程序安装说明进行操作: https://msdn.microsoft.com/en-us/library/hh568454(v=sql.110).aspx
运行 ./install.sh 验证报告 开始安装 Microsoft ODBC Driver 13 for SQL Server
> Checking for 64 bit Linux compatible OS
> ..................................... OK Checking required libs are
> installed ........................................ OK unixODBC
> utilities (odbc_config and odbcinst) installed .....................
> OK unixODBC Driver Manager version 2.3.1 installed
> ............................. OK unixODBC Driver Manager configuration
> correct .............................. OK* Microsoft ODBC Driver 13
> for SQL Server already installed ............ INSTALLED
尝试运行 bcp 会导致
bcp:加载共享库时出错:libodbc.so.2:无法打开共享对象文件:没有此文件或目录
在 /etc/lib 中检查 libodbc.so.2 - 没有这样的目录。它似乎是 unixODBC 的一部分。但是 sudo apt-get unixODBC 给我“该库已安装”。
我怀疑升级到 Ubuntu 16.0.4 可以解决这个问题,但我不知道是否可以在 lxss 中做到这一点。
odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/kieran/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
cat /etc/odbcinst.ini
[FreeTDS]
Description=TDS driver (Sybase/MS SQL)
Driver=libtdsodbc.so
Setup=libtdsS.so
CPTimeout=
CPReuse=
[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0
Threading=1
UsageCount=1
答案1
我找到问题了。
我需要将 /etc/lib64 添加到 /etc/ld.so.conf
然后运行 ldconfig -v 重建库缓存
然后我必须通过执行 sudo apt-get install libstdc++6 来升级 C++ 库
然后有效。