sqlserver最大内存太小导致连接不上
当修改了sqlserver最大内存过小时会导致程序连接不上数据库,最小内存的大小不定,可能跟数据库版本和开启服务有关系,建议1000m.
解决该问题的思路是:数据库最大内存过小时,sqlserver允许最小模式登录,所有先开启最小模式,登录sqlcmd,然后使用脚本修改数据库的最大内存。
1、在windows服务界面启动
在启动参数一栏填写:sqlservr.exe -sMSSQLSERVER -mSQLCMD –c -f -m
点击启动,会出现如下图:
然后,win+R,输入sqlcmd
运行后有如下界面:
将修改最大内存脚本复制进去:
EXEC sp_configure 'show advanced options', '1' RECONFIGURE WITH OVERRIDE; EXEC sp_configure 'max server memory', 2000 RECONFIGURE WITH OVERRIDE; EXEC sp_configure 'show advanced options', '0' RECONFIGURE WITH OVERRIDE; GO
回车运行后如下图:
修改成功后,要重启服务,将最小模式取消掉后即可正常登陆
2、命令行开启最小模式
在服务端sqlserver服务时关闭的情况下,找到sqlservr.exe的位置,cmd启动。
输入启动脚本:sqlservr.exe -sMSSQLSERVER -mSQLCMD –c -f -m
如下图是启动失败的实例,需要关闭其他的连接,即使没有连接上,如navicat和sqlserver management,关闭他们。保证服务也是关闭状态。
如下图是正常启动界面:
保持该界面正常,同时再另一个cmd界面运行:sqlcmd -E -sMSSQLSERVER。该步也是为了登录,可以直接win+R然后sqlcmd来操作效果一样。
在该界面输入修改最大内存脚本:
EXEC sp_configure 'show advanced options', '1' RECONFIGURE WITH OVERRIDE; EXEC sp_configure 'max server memory', 2000 RECONFIGURE WITH OVERRIDE; EXEC sp_configure 'show advanced options', '0' RECONFIGURE WITH OVERRIDE; GO
出现下图界面即以修改成功,关闭此前开启所有的cmd界面,去服务中开启服务即可。