今天,一个客户SQLServer服务器因为断电发生重启,重启之后使用MMS连接数据库提示无法连接到数据库,一番排查下来发现安装时对服务设置了以指定用户身份登陆启动数据库服务,但是该用户密码发生变更导致服务无法启动,经过调整数据库服务为本地启动后,使用具有管理员身份的用户成功启动数据库,MMS客户端正常连接到数据库。

一、问题现象

通过SQL Server客户端MMS连接数据库时,提示provider:Shared Memory Provider,error 40-无法打开到SQL Server的连接,就是无法连接到数据库。

SQLServer 数据库服务配置不当导致数据库无法启动#yyds干货盘点#_sql

二、问题分析

SQL Server客户端MMS无法连接到数据库,首先排查数据库服务是否正常启动。打开计算机管理,点击服务,查看发现MSSQL$$SQLEXPRESS服务处于已停止状态,这也就是MMS无法连接到数据库的根本原因,数据库服务没有启动。

SQLServer 数据库服务配置不当导致数据库无法启动#yyds干货盘点#_无法连接_02

由于数据库服务未启动,接下来尝试手工启动MSSQL$$SQLEXPRESS服务,被提示错误1069:由于登陆失败而无法启动服务。

SQLServer 数据库服务配置不当导致数据库无法启动#yyds干货盘点#_无法连接_03

据客户说当前用户拥有管理员权限,但是尝试启动SQL Server服务时却提示登陆失败无法正常启动数据库服务。接下来排查SQL Server服务启动的登陆设置,果然,数据库的核心服务启动被设置以指定用户身份登陆启动服务。据客户回忆,该用户的密码最近重置了,由此可知启动SQL Server服务用户的密码发生改变导致数据库服务无法以原先的登陆身份启动,最终导致数据库因计算机断电重启后无法随操作系统自动启动。

SQLServer 数据库服务配置不当导致数据库无法启动#yyds干货盘点#_无法连接_04

后来,客户发现使用的中断机器也有问题,拒绝使用指定账户登录中断,个人经验应该是尝试登陆的次数过多被堡垒机拒绝登陆,使用其他终端登录该账户可以正常登陆。

SQLServer 数据库服务配置不当导致数据库无法启动#yyds干货盘点#_无法连接_05

三、问题处理

经沟通后,建议客户将服务启动设置改为本地系统账户,调整之后,SQL Server服务成功启动,MMS客户端正常连接到的数据库。

四、总结

对于数据库,尤其是windows操作系统下的SQL Server,数据库安装使用超级管理员,数据库启动设置建议设置为以本地系统账户自动启动。这样数据库服务不依赖于操作系统账户密码,账户密码在发生变动不影响数据库服务的操作系统自动管理。在问题处理的过程中,如果某一个终端出现问题,可以尝试更换终端堡垒机以排除堡垒机限制问题。