这个原因比较坑,我们先还原一下mssql2019在linux开启代理的步骤,以下步骤都是2019版本,低于此版本,请观看官方文档,这是2019的步骤
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
sudo systemctl restart mssql-server
vim /etc/hosts
{YourIp} {HostName}这里一定要确认,是Host,是你的宿主机名,我的服务器是阿里云服务器,我直接配置了
“127.0.0.1” “{HostName}”
“{内网IP}” "{HostName}"这两个.
HostName在/etc/hostname中查看
cat /ect/hostname
3.接下来的操作在windows的数据库管理工具操作,
EXEC sp_configure 'show advanced', 1;
RECONFIGURE;
EXEC sp_configure 'allow updates', 0;
RECONFIGURE;
EXEC sp_configure 'Agent XPs', 1;
RECONFIGURE;
GO
结果:
然后查看sqlagent.out文件
讲真,我看这个日志,我第一时间真没看出来什么有用的,就是记录开启代理步骤,连接sql server.当我被这个问题困了一周以后,我突然发现account跟我的hostname名字长短有点不一样…
好了,确认问题了,代理登录时,由于我这个是新的服务器,hostname已经超过了15个字符,而代理登录时只截取了15字符,导致账户名不匹配,找到问题,那么就解决问题
第一步:
vim /etc/hostname
#把你那跟老太太的裹脚布似的name改成不超过15个字符的name
Esc
:wq 回车
shutdown -r now
然后重新
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
sudo systemctl restart mssql-server
cat一下sqlagent.out如果正常就可以了,如果有其他报错,不在此篇文章解答
讲真,翻遍了国内网论坛,没找到一篇文章,太难了