linux 连接远程sqlserver数据库?

在 Linux 系统上连接远程 SQL Server 数据库通常需要以下几个步骤:

  1. 安装必要的客户端工具
  2. 配置连接信息
  3. 测试连接

以下是详细的步骤和相关工具的介绍:

1. 安装必要的客户端工具

1.1 使用 sqlcmd 工具

Microsoft 提供了 sqlcmd 工具来与 SQL Server 进行交互。可以通过以下步骤安装 sqlcmd 工具。

  1. 安装 Microsoft 存储库

    首先,需要安装 Microsoft 的官方存储库。以下示例适用于 Ubuntu 系统,其他 Linux 发行版的步骤可能略有不同。

    bash
    # 导入 Microsoft 存储库的 GPG 密钥 curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - # 注册 Microsoft 存储库 sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/debian/10/prod buster main" > /etc/apt/sources.list.d/mssql-release.list'
  2. 安装 sqlcmd 工具

    bash
    # 更新本地包索引 sudo apt-get update # 安装 `sqlcmd` 工具 sudo ACCEPT_EULA=Y apt-get install -y mssql-tools unixodbc-dev

1.2 使用 ODBC 驱动

如果 sqlcmd 不满足需求,可以使用 ODBC 驱动。Microsoft 提供了针对 Linux 的 ODBC 驱动。

  1. 安装 Microsoft ODBC 驱动

    bash
    # 添加 Microsoft 存储库 sudo su curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list exit # 安装 ODBC 驱动和相关工具 sudo apt-get update sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17
  2. 安装 unixODBC

    bash
    sudo apt-get install -y unixodbc unixodbc-dev

2. 配置连接信息

2.1 使用 sqlcmd 连接

sqlcmd 是一个命令行工具,允许直接连接 SQL Server 并执行 SQL 命令。连接 SQL Server 时需要提供服务器地址、用户名和密码。

bash
sqlcmd -S <server_name_or_ip> -U <username> -P <password> -d <database_name>

例如:

bash
sqlcmd -S 192.168.1.100 -U sa -P 'your_password' -d your_database

2.2 使用 ODBC 连接

  1. 配置 ODBC 数据源

    创建一个 ODBC 配置文件 /etc/odbc.ini,配置数据源信息:

    ini
    [SQLServerDSN] Description = SQL Server ODBC Driver Driver = ODBC Driver 17 for SQL Server Server = <server_name_or_ip> Database = <database_name>

    创建一个 ODBC 驱动配置文件 /etc/odbcinst.ini(通常安装 ODBC 驱动时已自动配置):

    ini
    [ODBC Driver 17 for SQL Server] Description = Microsoft ODBC Driver 17 for SQL Server Driver = /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.6.so.1.1
  2. 使用 isql 测试连接

    isql 是一个命令行工具,可以用来测试 ODBC 数据源连接。

    bash
    isql -v SQLServerDSN <username> <password>

3. 测试连接

测试连接以确保配置正确。

  • 使用 sqlcmd: 运行 SQL 查询并查看结果,确保能够成功连接和查询数据。

    bash
    sqlcmd -S 192.168.1.100 -U sa -P 'your_password' -d your_database -Q "SELECT @@version"
  • 使用 isql: 验证 ODBC 数据源的连接和配置。

    bash
    isql -v SQLServerDSN your_username your_password

总结

在 Linux 上连接远程 SQL Server 数据库可以通过安装 sqlcmd 工具或使用 ODBC 驱动实现。安装 sqlcmd 可以通过 Microsoft 的存储库完成,而 ODBC 驱动则需要配置数据源和驱动文件。测试连接可以通过命令行工具如 sqlcmdisql 来验证配置是否正确。确保正确配置字符集和网络设置,以避免连接和数据传输问题。