如何从WSL(Ubuntu 20.04)连接本地SQL Server?
Ubuntu 20.04下SQL Server本地连接故障排查方案
报错信息
Sqlcmd: 错误: Microsoft ODBC Driver 17 for SQL Server : 登录超时已过期。
Sqlcmd: 错误: Microsoft ODBC Driver 17 for SQL Server : TCP Provider: 错误代码0x2749。
Sqlcmd: 错误: Microsoft ODBC Driver 17 for SQL Server : 在建立与SQL Server的连接时出现与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。请检查实例名称是否正确,以及SQL Server是否配置为允许远程连接。有关更多信息,请参阅SQL Server联机丛书。
排查与修复步骤
确认SQL Server服务运行状态
执行命令检查服务是否正常启动:sudo systemctl status mssql-server若服务未运行,启动并设置开机自启:
sudo systemctl start mssql-server sudo systemctl enable mssql-server验证TCP/IP端口监听配置
SQL Server默认使用1433端口,检查端口是否被监听:sudo netstat -tulpn | grep 1433若未检测到端口监听,编辑配置文件
/var/opt/mssql/mssql.conf,确保以下配置存在:[network] tcpenable = 1 tcpport = 1433保存后重启服务:
sudo systemctl restart mssql-server检查防火墙规则
确保Ubuntu防火墙开放1433端口(本地连接也可能受规则限制):sudo ufw allow 1433/tcp sudo ufw reload重新安装ODBC驱动
驱动损坏可能导致连接失败,执行重装:sudo apt-get remove -y msodbcsql17 sudo apt-get install -y msodbcsql17调整连接命令参数
尝试指定TCP协议和端口:sqlcmd -S tcp:localhost,1433 -U SA -P <YourPassword>若使用命名实例,需补充实例名:
sqlcmd -S localhost\<InstanceName> -U SA -P <YourPassword>重置SA账户密码
若SA账户被锁定或密码错误,执行重置:sudo /opt/mssql/bin/mssql-conf set-sa-password按提示输入新密码后重启服务。
内容的提问来源于stack exchange,提问作者Sikes Ben
相关产品推荐
相关产品推荐

