问题现象
如下是系统日志和SQL Agent的日志
SQLServerAgent could not be started (reason: 无法连接到服务器“(local)”;SQLServerAgent 无法启动)
2016-05-20 11:09:03 - ? [100] Microsoft SQLServerAgent 版本 11.0.3000.0 (内部版本号 X64 unicode 零售): 进程 ID 3568
2016-05-20 11:09:03 - ? [495] SQL Server 代理启动服务帐户是 WORKGROUP\iZ23egtmtrmZ$。
2016-05-20 11:09:03 - ! [150] SQL Server 不接受连接(错误: 18456)。请等待 SQL Server 允许连接。尝试的操作为: 启动时验证连接。
2016-05-20 11:09:03 - ! [000] 无法连接到服务器“(local)”;SQLServerAgent 无法启动
2016-05-20 11:09:03 - ! [298] SQLServer 错误: 18456,用户 'NT AUTHORITY\ANONYMOUS LOGON' 登录失败。 [SQLSTATE 28000]
2016-05-20 11:09:03 - ! [382] 无法登录到服务器“(local)”(DisableAgentXPs)
2016-05-20 11:09:03 - ? [098] SQLServerAgent 已终止(一般)
解决方法
在注册表中,定位到SQL Agent的ServerHOST属性:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.SQL2012\SQLServerAgent\ServerHost
其中MSSQL.X表示实例信息,其命名规则为:MSSQL版本号.实例名,如我机器上的MSSQL11.SQL2012,你机器上的实例名可能不同,另外,如果你的主机上安装了多个实例,也会有多个这样的选项,请根据实际情况查找,或者直接使用CTRL+F查找ServerHost关键字。
双击打开ServerHOST属性,在“数值数据”下填入np:servername
其中servername就是服务器的主机名。
最后再去启动SQL Server Agent,便可以了。