2015-05-22 51 views
0

我使用SQL Server Management Studio生成数据库生成的备份文件恢复了本地开发数据库。我在该恢复上覆盖了本地数据库。从备份恢复数据库后无法连接到数据库

现在我无法使用SQL Squirrel连接到数据库。造成这种情况的原因以及如何解决这个问题?谢谢。

我在登录时出现错误“尝试打开SQL连接时发生意外错误”。

堆栈跟踪信息按钮显示如下:

java.util.concurrent.ExecutionException: java.lang.RuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "devdatabase_myname" requested by the login. The login failed. ClientConnectionId:[id] 
    at java.util.concurrent.FutureTask.report(FutureTask.java:122) 
    at java.util.concurrent.FutureTask.get(FutureTask.java:206) 
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.awaitConnection(OpenConnectionCommand.java:132) 
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$100(OpenConnectionCommand.java:45) 
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$2.run(OpenConnectionCommand.java:115) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.RuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "devdatabase_myname" requested by the login. The login failed. ClientConnectionId:[id] 
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:171) 
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$000(OpenConnectionCommand.java:45) 
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$1.run(OpenConnectionCommand.java:104) 
    ... 5 more 
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "devdatabase_myname" requested by the login. The login failed. ClientConnectionId:[id] 
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216) 
    at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254) 
    at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220) 
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827) 
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012) 
    at net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(SQLDriverManager.java:133) 
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:167) 
    ... 7 more 
+0

缺少'GRANT's也许? – fantaghirocco

+0

您是否能够从SQL Server Management Studio内部进行连接?如果你不能那么你就知道这个问题可能是认证参数的一些变化。如果可以,请检查数据库名称,用户名,密码,主机和端口是否与服务器的相匹配。 –

回答

1

有可能你有一个孤立用户。如果您的数据库用户未正确映射到相同名称的登录名,则服务器将无法将您连接到正确的数据库。你可以看到下面的文章以帮助排除故障

http://msdn.microsoft.com/en-us/library/ms175475%28SQL.100%29.aspx

+0

这是正确的。我有一个孤儿用户,并能够通过以下指示修复此问题:http://geekswithblogs.net/bullpit/archive/2010/04/21/user-already-exists-in-the-current-database--- sql-server.aspx问题解决了。 –