Ubuntu 16.04环境下安装SQL Server Management Studio时遇Login failed for user错误求助
解决Ubuntu 16.04安装SQL Server Management Studio时的登录失败问题
看到你在Ubuntu 16.04上装完SQL Server后,装SSMS碰到了Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Login failed for user的错误,这大概率是身份验证配置、驱动依赖或者登录参数的问题,我整理了几个实用的排查步骤,你可以一步步试:
1. 先确认SQL Server的身份验证模式
Linux上的SQL Server默认可能没开启SQL身份登录(咱们用的sa或者自建管理员账户都是SQL登录),先验证一下:
- 先尝试本地登录SQL Server(用你设置的
sa账户和密码):sqlcmd -S localhost -U sa -P 你的密码 - 如果能成功登录,执行这条SQL检查身份验证模式:
如果结果里SELECT name, authentication_desc FROM sys.server_principals WHERE name = 'sa';authentication_desc显示SQL_LOGIN就没问题;如果不是,得改成混合模式:
改完重启SQL Server服务:ALTER LOGIN sa ENABLE; GO sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'mixed authentication mode', 1; GO RECONFIGURE; GOsudo systemctl restart mssql-server
2. 重新安装ODBC Driver 17,确保依赖完整
有时候驱动安装不全也会导致登录失败,咱们彻底卸载重装一次:
- 先卸载现有驱动和工具:
sudo apt-get remove --purge msodbcsql17 mssql-tools - 重新添加微软的软件源,再安装:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list sudo apt-get update sudo apt-get install -y msodbcsql17 mssql-tools - 把
mssql-tools的路径加到环境变量里,避免后续命令找不到:echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc
3. 检查登录参数是否正确
别小看这个,很多时候是参数输错了:
- 本地连接的话,服务器地址用
localhost或者127.0.0.1都可以,要是远程连接得确认IP和默认端口1433是否正确 - 密码要注意大小写(SQL Server密码是区分大小写的),用户名默认不区分但也别输错
- 可以尝试指定端口登录,避免端口冲突:
sqlcmd -S localhost,1433 -U sa -P 你的密码
4. 排查防火墙是否拦截了连接
如果是远程连接SSMS,Ubuntu的防火墙可能挡住了1433端口:
- 开放1433端口:
sudo ufw allow 1433/tcp sudo ufw reload - 检查防火墙状态确认端口已开放:
sudo ufw status
5. 确认SQL Server服务在正常运行
有时候服务意外停了也会导致登录失败:
sudo systemctl status mssql-server
如果显示未运行,启动它:
sudo systemctl start mssql-server
顺便设置开机自启,避免下次重启后服务没起来:
sudo systemctl enable mssql-server
要是上面的步骤都试过还是不行,可以去看SQL Server的错误日志,里面会有更详细的错误细节:
sudo cat /var/opt/mssql/log/errorlog
内容的提问来源于stack exchange,提问作者shwetapan
相关产品推荐
相关产品推荐

