Apache Superset连接SQL Server Express 2019报错求助
解决Apache Superset连接SQL Server Express 2019的连接错误
针对你遇到的Adaptive Server is unavailable or does not exist错误,按以下步骤逐一排查:
1. 检查SQL Server Express的基础配置
- 开启SQL Server Browser服务:SQL Server Express默认是命名实例,需要Browser服务对外暴露实例信息。在Windows服务中找到
SQL Server Browser,设置为自动启动并启动服务。 - 启用TCP/IP协议:打开SQL Server配置管理器,依次进入
SQL Server网络配置 > 针对SQLEXPRESS的协议,将TCP/IP设为启用。右键TCP/IP选择属性,在IP地址标签页拉至底部,确认IPAll的TCP端口为1433(如果是动态端口,需确保Browser服务运行,后续连接字符串不要指定端口)。 - 允许远程连接:打开SSMS连接本地SQLEXPRESS,右键服务器选择
属性,进入连接标签页,勾选允许远程连接到此服务器。
2. 修正连接字符串格式
你的连接字符串同时指定了实例名和端口,会导致解析错误,二者选其一即可:
- 若用端口1433:去掉实例名,格式如下:
mssql+pymssql://ss_user:password008@100.0.0.44:1433/EmpDataMaster - 若用命名实例SQLEXPRESS(需确保Browser服务开启):去掉端口,或用参数指定实例,可选格式:
或转义URL中的反斜杠(用mssql+pymssql://ss_user:password008@100.0.0.44/EmpDataMaster?instance=SQLEXPRESS%5C代替\):mssql+pymssql://ss_user:password008@100.0.0.44%5CSQLEXPRESS/EmpDataMaster
3. 排查网络与防火墙
- 测试容器内网络连通性:如果Superset用Docker部署,进入容器执行命令测试端口是否开放:
显示成功则端口连通,否则说明网络存在问题。nc -zv 100.0.0.44 1433 - 检查SQL Server所在机器的防火墙:添加入站规则,允许1433端口的TCP连接,或直接允许
SQL Server和SQL Server Browser服务通过防火墙。
4. 验证驱动与账号权限
- 确认pymssql驱动已安装:进入Superset容器,执行
pip list查看是否有pymssql,未安装则执行:pip install pymssql - 验证账号权限:用ss_user账号在SSMS中远程连接SQLEXPRESS,确认能正常访问EmpDataMaster数据库,且账号拥有
public及以上权限。
内容的提问来源于stack exchange,提问作者Rahul H
相关产品推荐
相关产品推荐

