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

ARM64架构下如何使用sqlcmd?——基于NVIDIA Jetson Orin Nano场景

ARM64架构SQL Edge容器中sqlcmd缺失的解决方案

问题背景

使用ARM64架构的NVIDIA Jetson Orin Nano作为IoT Edge设备,已成功部署SQL Edge模块,但容器内无预装sqlcmd工具,官方暂未提供ARM64版本的SQL客户端工具包。报错如下:

mssql@e0f0035b988c:/$ /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ''
bash: /opt/mssql-tools/bin/sqlcmd: No such file or directory

以下是可行解决方案:


方案1:从宿主机连接SQL Edge容器

利用容器映射的1433端口,在Jetson Orin Nano宿主机上使用ARM64兼容的SQL客户端:

  • 使用Python + pyodbc
    1. 安装依赖:
      sudo apt install python3-pip unixodbc-dev
      
    2. 安装pyodbc:
      pip3 install pyodbc
      
    3. 编写查询脚本(示例):
      import pyodbc
      conn_str = 'DRIVER={ODBC Driver 18 for SQL Server};SERVER=localhost,1433;DATABASE=master;UID=SA;PWD=<你的密码>;Encrypt=no'
      with pyodbc.connect(conn_str) as conn:
          with conn.cursor() as cursor:
              cursor.execute("SELECT @@VERSION;")
              for row in cursor:
                  print(row[0])
      
  • 使用Azure Data Studio(ARM64版本)
    下载适配ARM64的Azure Data Studio安装包,通过图形界面直接连接容器内的SQL Edge服务。

方案2:在SQL Edge容器内手动编译sqlcmd

基于微软开源的mssql-tools源码,在ARM64容器内编译生成sqlcmd:

  1. 进入容器:
    docker exec -it <你的SQL Edge容器ID/名称> bash
    
  2. 安装编译依赖:
    apt update && apt install -y git cmake build-essential libssl-dev libkrb5-dev
    
  3. 克隆源码并编译:
    git clone https://github.com/microsoft/mssql-tools.git
    cd mssql-tools && mkdir build && cd build
    cmake .. && make
    
  4. 编译完成后,直接使用生成的sqlcmd:
    ./bin/sqlcmd -S localhost -U SA -P '<你的密码>'
    

方案3:使用容器内的.NET Runtime执行SQL查询

SQL Edge ARM64镜像自带.NET Runtime,可通过C#脚本执行SQL操作:

  1. 创建QuerySql.cs文件:
    using System;
    using System.Data.SqlClient;
    
    class SqlQuery
    {
        static void Main()
        {
            var connString = "Server=localhost;User ID=SA;Password=<你的密码>;Database=master;TrustServerCertificate=True";
            using (var conn = new SqlConnection(connString))
            {
                conn.Open();
                var query = "SELECT @@VERSION;";
                using (var cmd = new SqlCommand(query, conn))
                using (var reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Console.WriteLine(reader[0]);
                    }
                }
            }
        }
    }
    
  2. 编译并运行:
    dotnet build QuerySql.cs -o sqlquery
    dotnet sqlquery/QuerySql.dll
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 03:36:03