You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Solaris11服务器安装连接Azure SQL MI的命令行工具以执行SQL及BCP操作?

在Solaris 11上安装sqlcmd和bcp连接Azure SQL MI的方案

由于微软官方未提供Solaris系统的sqlcmd/bcp工具安装包,可通过以下几种替代方案满足业务需求:

方案一:使用FreeTDS开源工具集

FreeTDS是支持TDS协议的开源实现,可连接Azure SQL MI、SQL Server等数据库,自带类似sqlcmd和bcp的工具:

  • 安装FreeTDS
    1. 若Solaris 11 pkg仓库无现成包,可通过源码编译:
      • 下载FreeTDS稳定版源码包并解压
      • 执行配置命令:./configure --prefix=/usr/local/freetds --with-tdsver=7.4(7.4版本适配Azure SQL MI的协议要求)
      • 编译安装:make && make install
  • 替代sqlcmd执行SQL
    使用FreeTDS自带的tsql工具,连接命令示例:
    tsql -S <Azure_SQL_MI_FQDN> -U <用户名> -P <密码> -D <数据库名>
    
    进入交互模式后即可执行SQL语句,也可通过-Q参数直接执行单条SQL。
  • 替代bcp进行数据导入导出
    FreeTDS自带bcp工具(语法与微软官方版本略有差异),导出示例:
    bcp <数据库名>.<架构名>.<表名> out /本地输出路径/file.csv -S <Azure_SQL_MI_FQDN> -U <用户名> -P <密码> -c -t,
    

方案二:通过Docker容器运行官方工具

若Solaris 11已部署Docker环境,可直接使用微软官方的mssql-tools镜像:

  • 拉取镜像:docker pull mcr.microsoft.com/mssql-tools
  • 执行sqlcmd命令:
    docker run --rm mcr.microsoft.com/mssql-tools sqlcmd -S <Azure_SQL_MI_FQDN> -U <用户名> -P <密码> -Q "SELECT * FROM your_table"
    
  • 执行bcp操作(需挂载本地目录实现文件读写):
    docker run --rm -v /本地目录:/容器内目录 mcr.microsoft.com/mssql-tools bcp <数据库名>.<架构名>.<表名> out /容器内目录/file.csv -S <Azure_SQL_MI_FQDN> -U <用户名> -P <密码> -c -t,
    

方案三:编译微软开源版sqlcmd

微软已将sqlcmd基于Go语言开源,可在Solaris 11上自行编译:

  • 安装Go环境:通过Solaris pkg安装developer/go-1.20或更高版本
  • 克隆源码仓库:git clone https://github.com/microsoft/go-sqlcmd.git
  • 编译生成二进制文件:
    cd go-sqlcmd && go build -o sqlcmd ./cmd/sqlcmd
    
  • 将编译好的sqlcmd复制到/usr/local/bin等PATH目录下即可使用

    注:开源版sqlcmd基本兼容官方功能,但bcp功能需单独处理,可结合方案一的FreeTDS bcp工具使用

注意事项

  • 确保Solaris服务器网络可访问Azure SQL MI的1433端口,且Azure防火墙规则允许该服务器IP访问
  • 优先使用Azure AD认证方式(FreeTDS和开源sqlcmd均支持部分Azure AD认证模式)
  • 连接前可通过nc -zv <Azure_SQL_MI_FQDN> 1433验证网络连通性

内容的提问来源于stack exchange,提问作者Carson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 00:22:20