我已经在64位虚拟盒子上安装了SQL Server 2008 express,并且该服务不会启动。
看看事件日志,我得到:
无法创buildtempdb。 您可能没有足够的磁盘空间可用。 通过删除tempdb驱动器上的其他文件,然后重新启动SQL Server,释放额外的磁盘空间。 检查事件日志中的其他错误可能表明为什么tempdb文件无法初始化。
有关更多信息,请参阅http://go.microsoft.com/fwlink/events.asp上的帮助和支持中心。
并且:
FileMgr :: StartLogFiles:创build或打开文件'e:\ sql10_main_t \ sql \ mkmastr \ databases \ objfre \ i386 \ MSDBLog.ldf'时,发生操作系统错误2(无法检索到此错误的文本,原因:1815)。 诊断并更正操作系统错误,然后重试操作。
注意:这也是另一个类似于mdf文件的错误。
现在奇怪的是没有电子驱动器映射到这个盒子,所以我不知道为什么这是试图从这里打开一个文件。 不知道这是否是一个虚拟切片的事实,也许主机有这个驱动器映射?
任何build议欢迎。
克里斯。
尝试以下(请注意,我在2005年的快速,所以你可能需要调整,如需要):
打开一个控制台并尝试以单用户模式启动:
sqlsvr.exe -m -s <instance_name>
如果启动,现在可以打开pipe理工作室并尝试以下操作:
-- alter the database ALTER DATABASE tempdb MODIFY FILE ( NAME = 'tempdev', FILENAME = 'SomeWhere\Here\tempdb.mdf' ) ALTER DATABASE tempdb MODIFY FILE ( NAME = 'templog', FILENAME = 'SomeWhere\Here\templog.ldf' ) -- ensure that it has been moved SELECT name, physical_name as CurrentLocation, state_desc from sys.master_files WHERE database_id IN (DB_ID('tempdev'), DB_ID('templog')
现在停止sql服务器,并尝试从服务控制台重新启动。 它现在应该成功启动。
如果它也做了以下操作,以确保在正确的位置创build新的数据库:
这应该改变默认位置
希望这可以帮助你…
为了解决这个问题,你必须使用下面的命令string来重build数据库。 这个命令必须从这个目录运行。
C:\ Program Files \ Microsoft SQL Server \ 100 \ Setup Bootstrap \ Release
安装程序/ QUIET / ACTION = REBUILDDATABASE / INSTANCENAME = InstanceName / SQLSYSADMINACCOUNTS = accounts / [SAPWD = StrongPassword]
如果您使用Windows身份validation,则可以像这样删除命令的强密码部分。
安装程序/ QUIET / ACTION = REBUILDDATABASE / INSTANCENAME = InstanceName / SQLSYSADMINACCOUNTS =帐户
您可以在http://msdn.microsoft.com/en-us/library/dd207003.aspx上阅读有关此问题的更多信息。 希望这可以帮助别人。