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

Mac M1上Azure SQL Edge容器无法通过mysql.connector正常连接

解决Mac M1上Azure SQL Edge容器无法通过Python连接的问题

核心问题:驱动选型错误

Azure SQL Edge是SQL Server兼容数据库,并非MySQL,使用mysql.connector连接完全不匹配,这是导致连接无响应的根本原因。

正确解决步骤

1. 安装适配SQL Server的Python驱动

推荐使用官方支持的pyodbc,Mac M1环境下先安装依赖再装驱动:

brew install unixodbc
pip install pyodbc

2. 修改Python连接代码

替换错误的mysql.connector,改用pyodbc编写正确的连接逻辑:

import pyodbc

# 构建SQL Server连接字符串
conn_str = (
    "DRIVER={ODBC Driver 18 for SQL Server};"
    "SERVER=localhost,1433;"
    "DATABASE=你的数据库名称;"  # 注意此处填数据库名,而非表名dbo.Customers
    "UID=sa;"
    "PWD=bigStrongPwd1!;"
    "Encrypt=yes;"
    "TrustServerCertificate=yes;"
)

try:
    connection = pyodbc.connect(conn_str, timeout=5)
    print("连接成功!")
    # 执行数据操作逻辑...
    connection.close()
except pyodbc.Error as e:
    print(f"连接失败: {e}")

注意:

  • database参数需填写实际使用的数据库名(如默认的master或你自行创建的数据库),不能直接写表名
  • 由于Azure SQL Edge默认启用加密,需添加Encrypt=yes和TrustServerCertificate=yes用于本地测试

3. 验证容器端口状态

可通过以下命令确认容器内1433端口是否正常监听:

docker exec sqledge netstat -an | grep 1433

若输出显示0.0.0.0:1433,说明端口映射无问题。

4. 关于浏览器访问1433端口的说明

1433是数据库TCP协议端口,并非HTTP端口,浏览器访问必然报错,属于正常现象,无需排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:20:27