无法通过DirectQuery将Linux远程SQL Express服务器连接到Power BI求助
故障根因
你遇到的报错核心触发原因是Power BI Direct Query模式默认优先尝试使用命名管道协议建立连接,而Linux版本的SQL Server完全不支持命名管道协议,导入模式能成功是因为该模式下会优先走TCP协议拉取一次性数据,字段窗格有加载内容是Power BI缓存了首次连接时拉取的表结构元数据,并非实际连接成功。
分步修复操作
- 第一步:修改Power BI连接参数,强制走TCP协议
重新打开Power BI「获取数据>SQL Server」入口,在服务器地址输入框中给原有地址添加tcp:前缀,示例:
原有地址:192.168.1.10\SQLEXPRESS,1433
修改后地址:tcp:192.168.1.10\SQLEXPRESS,1433
确认数据连接模式选择Direct Query后直接测试连接,90%以上的同类问题可通过该步骤解决。 - 第二步:校验Linux端SQL Server配置
SSH登录Linux服务器后依次执行以下操作:- 开启TCP协议并配置监听端口(默认1433,可自行修改):
/opt/mssql/bin/mssql-conf set network.tcpport 1433 - 配置允许VPN段IP访问,允许所有IP访问可填0.0.0.0:
/opt/mssql/bin/mssql-conf set network.ipaddress 0.0.0.0 - 重启SQL服务生效配置:
systemctl restart mssql-server - 放行服务器防火墙对应端口,以ufw为例:
ufw allow 1433/tcp
以firewalld为例:firewall-cmd --add-port=1433/tcp --permanent && firewall-cmd --reload
- 开启TCP协议并配置监听端口(默认1433,可自行修改):
- 第三步:校验远程连接权限
用本地SSMS连接SQL Server后,打开服务器属性-连接页,确认已勾选「允许远程连接到此服务器」,该配置入口和Windows版SQL Server完全一致,无需在Linux端操作。
注意事项
排查前可先在本地PowerShell执行
Test-NetConnection 你的服务器IP -Port 1433确认端口连通性,Direct Query模式需要持续保持VPN连接,断连后刷新会触发同类报错。
内容的提问来源于stack exchange,提问作者DanielvL
相关产品推荐
相关产品推荐

