我们目前正在迁移服务器(2005年至2008年),我们的主机备份了SQL数据库并将其转移到新服务器。
我已经转移了网站文件并更改了连接字符串和global.asa文件中的IP地址。
从技术上讲,我们在新服务器上有镜像,但是当我尝试启动连接到SQL的页面时,我收到以下错误。
SQL_Server_does_not_exist_or_access_denied。
答案 0 :(得分:6)
检查您的TCP / IP端口是否已启用
要检查它:
-从启动程序中打开 SQL Server配置管理器。
-展开 SQL Server网络配置
-单击 XXXX协议
-右键单击 TCP / IP 并打开属性
-启用TCP / IP
-在“ IP地址”标签中,在最后一个选项(IPAll)中设置端口1433
答案 1 :(得分:5)
在这种情况下的错误消息很可能是正确的。首先,验证从您到新服务器的网络路径是否正常工作,您可以使用指定的userid / pwd进行连接。
1)打开Management Studio并尝试通过ip地址连接到SQL Server实例。 (顺便说一句,如果您还没有使用SQL Server userid / pwd,那么您可能需要使用SQL Server userid / pwd,因为您在Internet主机上很可能没有用于Windows身份验证的AD上下文。)
2)如果您确实可以使用Management Studio连接到实例和数据库,那么您可能错过了某处的连接字符串。尝试仅为所述连接字符串维护1个位置,通常在配置文件中。检查详细报告的错误行,以发现正在使用的连接字符串,并验证它是否反映了新的服务器IP。
答案 2 :(得分:3)
如果在SQL Config中未正确配置克隆服务器的IP,也会发生同样的错误 - > TCP / IP连接。
在SQL TCP / IP配置中配置错误的IP确实让你:
当从另一个SQL服务器克隆服务器时,会发生这种情况,该服务器将来自主服务器的SQL IP配置作为残留。
但客户端应用程序无法使用连接字符串进行连接,但使用服务器名称时会显示以下消息:
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied
执行以下操作以在SQL Server上进行验证:
答案 3 :(得分:1)
在新计算机上安装安装时,我也遇到过这个问题。
我遇到的连接问题是由于托管MSSQL的服务器上的防火墙设置造成的。该设置为个人IP地址提供了访问权限,这在我们的环境中“有效”,因为我们的管理员将IP地址描述为“粘性”。一旦防火墙访问被授予我的新机器的IP地址,我在本地WAMP设置中运行的PHP odbc_connect(...)
语句立即完成。
与许多问题一样,可能会有不止一种方法遇到这些问题,但我希望尽可能明确地了解我的经历。
如果我在自己的PC上安装了自己的MSSQL管理工作室,可能会更清楚一点,但我不这样做。
在MSSQL服务器上的入站规则中,我找到了一个引用MSSQL实例的规则,并且确实在属性选项卡“Scope”下面找到了我旧机器的IP地址作为“远程IP地址”。这是希望每当我拿到下一台机器时我都记得这个! (退役的PC的IP已被删除)
@Darren,如果你可以根据你接受的答案发表评论,那么知道@ Tahbaza的哪些建议引导你解决问题可能会很好。答案 4 :(得分:1)
数据库的凭据是否配置为使用SQL用户和登录而不是Windows用户和登录?
如果是这样,您可能需要将数据库中的SQL用户重新映射到服务器上的SQL登录名。要扫描以查看是否存在此问题,可以使用EXEC sp_change_users_login 'Report'
。 'Auto_Fix'
选项将自动更正系统找到的问题。您还可以运行ALTER USER $User WITH LOGIN $Login
以单独手动更正每个映射。
http://technet.microsoft.com/en-us/library/ms174378.aspx
导致该问题是因为在旧服务器上的数据库中为SQL用户生成的SID与新数据库上的SQL登录的SID不匹配。存储过程纠正了差异。
答案 5 :(得分:1)
从Qt连接到同时在我的计算机上运行的Microsoft SQL Server 2014时,我遇到了这个问题...
我使用了以下QODBC连接字符串:
db.setDatabaseName("Driver={SQL Server};Server=DESKTOP-F6T7JPD\\sql_Instance_Name;Database=master;Uid=sa;Pwd=your_pwd;");
我只遇到了两个问题:
确定要用于Server的内容,这必须是在SQL Server实例上配置的服务器名称,这可以通过打开“MicrosoftSql2014 management Studio”找到,然后通过查看属性我找到了名称({{ 1}})
第二个问题实际上是必须通过在我的PC名称和实例名称之间添加另一个反斜杠DESKTOP-F6T7JPD\sql_Instance_Name
来修改此名称
所以在管理工作室找到的名字就像:\
。
请注意“\”,...这必须设为PC_Name\Sql_Instance
请注意PC名称和实例名称之间的Pc_Name\\Sql_Instance
!
答案 6 :(得分:0)
一个可能的原因是服务器未运行。如果即使在Management Studio中也无法连接,请检查SQL Server服务是否已启动已启动,并且已将其配置为自动,以便在启动时启动。