发生场景
当时觉得SQL Server的后台占用内存有点大,然后在网上找教程改了一下,没想到服务直接打不开了。。。。。。。。
SQL Server 右键属性,设置服务器属性最大服务器内存为 200MB,设置太小造成SQL 服务无法
启动,悲剧开始。。。。 幸亏不是生产环境。(奉劝各位不要随意改配置,要了解所以然),很
显然问题原因是:限制内存并应用后,SQLServer内存不足自动停止,并且无法正常启动,
在网上查阅了许多知识例如:SQL Server最大内存设设置太小导致无法启动SQL 服务_bodilove的
专栏-CSDN博客 发现并和我的实际状况不同,经过上面链接的教程我还是失败了
然后就gg了,最后我自己琢磨了一会我想想可以从sqlcmd下手,然后居然成功了,那么下面教程开始
首先重启电脑,然后关闭服务(重启是让意外情况最小化)(如果你确定关闭了服务,或者压根没运行可以跳过此步)
--使用管理员运行cmd,不会的自行百度
--正常关闭SQL Server服务,如果是集群,需要先关停止集群角色防止故障转移,然后再单独关闭服务。
--打开cmd
--输入命令:
net stop mssqlserver
--注意这一步可能会使实例处于挂起状态很长时间,但是正常关闭是必须的,直接杀进程可能造成数据文件损坏。
关闭成功
接下来回到桌面——右击此电脑打开管理——点击服务和应用程序——点击服务——找到SQL Server这个服务
右击SQL Server这个服务点击属性
在最下面有一个启动参数
输入
--输入:
sqlservr.exe -f -s MSSQLSERVER
--MSSQLSERVER 默认实例名,可修改为你实际实例名修改
--f最小模式启动实例
如下图
然后点击启动你会发现现在服务启动成功并且正在运行,最后点击确定,一定一定要点确定
流程:先输命令, 然后点启动 ,然后点确定
下面的图就是启动成功了
这时候你用Microsoft SQL Server Management Studio 连接数据库你会发现你还是连不进去 它提醒你处于单用户模式中,只允许一个用户登录 如下图
这个时候不要慌,我们快要成功了,现在意味着你已经使用sql server的最小模式我们可以用存储过程来改参数
首先按win+R打开运行输入sqlcmd(或者使用管理员运行cmd然后在cmd输入sqlcmd)
打开sqlcmd
输入以下代码
--修复,修改内存最大值为不限制
EXEC sp_configure 'show advanced options', '1' RECONFIGURE WITH OVERRIDE;
EXEC sp_configure 'max server memory', 2147483647 RECONFIGURE WITH OVERRIDE;
EXEC sp_configure 'show advanced options', '0' RECONFIGURE WITH OVERRIDE;
GO
回车执行
修改成功
这时候不要急的去连接数据库,因为你还是连不上,你现在还是处于基本模式中,这时候去打开管理——点击服务和应用程序——点击服务——找到SQL Server这个服务,右击重新启动
启动成功后
这时候你就可以连接数据库了(最后奉劝各位不要随意改配置)
后话,即使上边动作都按照操作执行,可能还会遇到无法登陆的其他情况,具体问题具体对待。
基本上无法登陆情况总结如下:
1.sql服务没有启动
2.TCP/IP没有开启
3.TCP/IP属性,IP地址没有启用
(第一次写教程希望多多支持,不足之处希望多多建议)