centos7 使用安装了 Microsoft ODBC Driver 13 for SQL Server 驱动后,使用sqlcmd连接不上sqlserver。

在CentOS 7上安装了Microsoft ODBC Driver 13 for SQL Server后,但使用sqlcmd连接不上SQL Server可能涉及到几个常见问题和解决方法:

1. 配置ODBC数据源

首先,确保已经正确配置了ODBC数据源以便让ODBC驱动能够正确地连接到SQL Server。

  1. 编辑ODBC配置文件:通常ODBC驱动会在/etc/odbc.ini或者用户目录下的.odbc.ini文件中配置数据源信息。例如:

    ini
    [MySqlServerDSN] Driver = ODBC Driver 13 for SQL Server Server = your_sql_server_address Port = 1433 ; SQL Server默认端口 Database = your_database_name UID = your_username PWD = your_password

    修改ServerDatabaseUIDPWD为你的SQL Server的实际连接信息。

  2. 测试ODBC配置:可以使用isql命令来测试ODBC配置是否正确,例如:

    bash
    isql -v MySqlServerDSN your_username your_password

    如果能够成功连接,则说明ODBC配置正确。

2. 检查SQL Server配置

确保SQL Server已经启用了TCP/IP协议,并且允许远程连接。

  1. 启用TCP/IP协议:在SQL Server配置管理器中,确保TCP/IP协议已经启用。

  2. 配置防火墙:如果SQL Server和CentOS 7在不同的机器上,确保防火墙允许从CentOS 7主机上的sqlcmd程序访问SQL Server的1433端口(或其他SQL Server实例的端口)。

3. 检查驱动和依赖库

确保Microsoft ODBC Driver 13 for SQL Server已经正确安装,并且依赖的库已经正确配置。

  1. 检查ODBC驱动:确保libmsodbcsql-13.1.so.x(具体版本号可能有所不同)位于正确的系统库路径中,或者通过配置LD_LIBRARY_PATH环境变量指定正确的路径。

    bash
    export LD_LIBRARY_PATH=/opt/microsoft/msodbcsql/lib64:$LD_LIBRARY_PATH
  2. 安装依赖库:确保系统中安装了ODBC驱动依赖的库,例如unixODBC等。

4. 使用sqlcmd测试连接

最后,使用sqlcmd命令来测试连接是否正常。

bash
sqlcmd -S your_sql_server_address -U your_username -P your_password -d your_database_name -Q "SELECT @@VERSION;"

如果连接成功,会输出SQL Server的版本信息。如果连接失败,请查看错误消息并根据错误信息进一步调试。

通过以上步骤,应该能够解决CentOS 7上使用Microsoft ODBC Driver 13 for SQL Server连接SQL Server时遇到的问题。