我们目前正在迁移服务器(2005年至2008年),我们的主机备份了SQL数据库并将其传输到新服务器。我已经转移了网站文件,并更改了连接字符串和全局地址中的IP地址。asa文件。因此,从技术上讲,我们在新服务器上有一个镜像,但当我尝试启动一个连接到SQL的页面时,我得到了以下错误。SQL_Server_does_not_exist_or_access_denied。
smtd7mpg1#
检查您的TCP/IP端口是否已启用要检查它:--从启动程序打开SQL Server Configuration Manager。--展开SQL Server网络配置--单击XXXX的协议--右键单击TCP/IP并打开属性-启用TCP/IP-在IP地址选项卡中,在最后一个选项(IPAll)中设置端口1433
8ulbf1ek2#
这种情况下的错误消息很可能是正确的。首先,验证从您到新服务器的网络路径是否正常,并且您可以使用指定的userid/pwd进行连接。1) 打开Management Studio并尝试通过ip地址连接到SQL Server示例。(顺便说一下,如果您尚未使用SQL Server userid/pwd,则可能需要使用它,因为您在Internet主机上,并且很可能没有用于Windows身份验证的AD上下文。)2) 如果您确实可以使用ManagementStudio连接到示例和数据库,那么您可能在某个地方丢失了连接字符串。尝试只为所述连接字符串保留一个位置,通常在配置文件中。详细检查报告的错误行,以发现正在使用的连接字符串,并验证它是否反映了新的服务器ip。
z4bn682m3#
在SQL Config-->TCP/IP连接中未正确配置克隆服务器的IP时,也会发生此错误。在SQL TCP/IP配置中使用错误配置的IP确实可以让您:1.使用ODBC连接使用服务器名称从客户机连接1.使用带有1433端口号和服务器名称的TELNET连接当服务器从另一个SQL服务器克隆时,会发生这种情况,该SQL服务器将主服务器的SQLIP配置作为残留物。但客户端应用程序无法使用连接字符串进行连接,尽管使用了带有以下消息的服务器名称:
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied
请执行以下操作以在SQL Server上进行验证:1.通过执行IPCONFIG,记录服务器本身的IP(可能管理员在克隆盒子后更新了机器的IP)1.打开SQL Server配置管理器1.展开SQL Server网络配置1.选择MSSQLSERVER的协议1.双击右侧的TCP/IP1.切换到IP地址选项卡1.向下滚动到IPv4部分,验证它是否与机器本身的IP地址相同。如果不是,请修复IP。如果正确,这不是问题所在。
kzipqqlq4#
在新计算机上安装时,我也遇到了这个问题。我遇到的连接问题是由于承载MSSQL的服务器上的防火墙设置造成的。该设置允许单个IP地址访问它,这在我们的环境中“有效”,因为管理员将IP地址描述为“粘性”。一旦防火墙访问被授予新机器的IP地址,我在本地WAMP设置中运行的PHP odbc_connect(...)语句立即完成。与许多问题一样,可能有不止一种方法可以遇到它们,但我希望尽可能明确地说明我是如何经历的。如果我在我的电脑上安装了MSSQL管理工作室,这可能会更清楚一点,但我没有。在容纳MSSQL的服务器上的入站规则中,我找到了一个引用MSSQL示例的规则,并确定在属性选项卡“范围”下找到了我的旧计算机的IP地址作为“远程IP地址”。希望我每次拿到下一台机器时都能记住这一点!(退役PC的IP已删除)@Darren,如果你能在你接受的答案下留言,也许很高兴知道@Tahbaza的哪些建议让你下了决心。
odbc_connect(...)
ruarlubt5#
我在从Qt连接到同时在我的计算机上运行的Microsoft SQL Server 2014时遇到了此问题。。。我使用了以下QODBC连接字符串:
db.setDatabaseName("Driver={SQL Server};Server=DESKTOP-F6T7JPD\\sql_Instance_Name;Database=master;Uid=sa;Pwd=your_pwd;");
我只遇到了两个问题:1.确定要用于服务器的内容,这必须是SQL Server示例上配置的服务器名称,可以通过打开“MicrosoftSQL 2014 management Studio”,然后查看属性找到名称(DESKTOP-F6T7JPD\sql_Instance_Name)1.第二个问题实际上是,必须通过在我的PC名称和示例名称之间添加另一个反斜杠\来修改此名称,这样在management studio上找到的名称将是:PC_Name\Sql_Instance。请注意PC名称和示例名称之间的\\!
DESKTOP-F6T7JPD\sql_Instance_Name
\
PC_Name\Sql_Instance
\\
vwkv1x7d6#
数据库的凭据是否配置为使用SQL用户和登录名而不是Windows用户和登录?如果是这样,您可能需要将数据库中的SQL用户重新Map到服务器上的SQL登录。要扫描查看是否存在此问题,可以使用EXEC sp_change_users_login 'Report'。'Auto_Fix'选项将自动更正系统发现的问题。您还可以运行ALTER USER $User WITH LOGIN $Login来分别手动更正每个Map。http://technet.microsoft.com/en-us/library/ms174378.aspx升导致此问题的原因是,在旧服务器上的数据库中为SQL用户生成的SID与新数据库上的SQL登录的SID不匹配。存储过程更正了差异。
EXEC sp_change_users_login 'Report'
'Auto_Fix'
ALTER USER $User WITH LOGIN $Login
unguejic7#
一个可能的原因是服务器未运行。如果即使在Management Studio中也无法连接,请检查SQL Server服务是否已启动,并且已将其配置为自动,以便在启动时启动。
6pp0gazn8#
如果在连接到SQL server时出现拒绝访问错误,请确保在SQL server网络配置下启用了TCP/IP协议。请参见下面的屏幕截图
小时
a8jjtwal9#
在我的例子中,服务“SQLBrowser”被禁用。我刚刚重新启用了它,现在工作正常。
9条答案
按热度按时间smtd7mpg1#
检查您的TCP/IP端口是否已启用
要检查它:
--从启动程序打开SQL Server Configuration Manager。
--展开SQL Server网络配置
--单击XXXX的协议
--右键单击TCP/IP并打开属性
-启用TCP/IP
-在IP地址选项卡中,在最后一个选项(IPAll)中设置端口1433
8ulbf1ek2#
这种情况下的错误消息很可能是正确的。首先,验证从您到新服务器的网络路径是否正常,并且您可以使用指定的userid/pwd进行连接。
1) 打开Management Studio并尝试通过ip地址连接到SQL Server示例。(顺便说一下,如果您尚未使用SQL Server userid/pwd,则可能需要使用它,因为您在Internet主机上,并且很可能没有用于Windows身份验证的AD上下文。)
2) 如果您确实可以使用ManagementStudio连接到示例和数据库,那么您可能在某个地方丢失了连接字符串。尝试只为所述连接字符串保留一个位置,通常在配置文件中。详细检查报告的错误行,以发现正在使用的连接字符串,并验证它是否反映了新的服务器ip。
z4bn682m3#
在SQL Config-->TCP/IP连接中未正确配置克隆服务器的IP时,也会发生此错误。
在SQL TCP/IP配置中使用错误配置的IP确实可以让您:
1.使用ODBC连接使用服务器名称从客户机连接
1.使用带有1433端口号和服务器名称的TELNET连接
当服务器从另一个SQL服务器克隆时,会发生这种情况,该SQL服务器将主服务器的SQLIP配置作为残留物。
但客户端应用程序无法使用连接字符串进行连接,尽管使用了带有以下消息的服务器名称:
请执行以下操作以在SQL Server上进行验证:
1.通过执行IPCONFIG,记录服务器本身的IP(可能管理员在克隆盒子后更新了机器的IP)
1.打开SQL Server配置管理器
1.展开SQL Server网络配置
1.选择MSSQLSERVER的协议
1.双击右侧的TCP/IP
1.切换到IP地址选项卡
1.向下滚动到IPv4部分,验证它是否与机器本身的IP地址相同。如果不是,请修复IP。如果正确,这不是问题所在。
kzipqqlq4#
在新计算机上安装时,我也遇到了这个问题。
我遇到的连接问题是由于承载MSSQL的服务器上的防火墙设置造成的。该设置允许单个IP地址访问它,这在我们的环境中“有效”,因为管理员将IP地址描述为“粘性”。一旦防火墙访问被授予新机器的IP地址,我在本地WAMP设置中运行的PHP
odbc_connect(...)
语句立即完成。与许多问题一样,可能有不止一种方法可以遇到它们,但我希望尽可能明确地说明我是如何经历的。
如果我在我的电脑上安装了MSSQL管理工作室,这可能会更清楚一点,但我没有。
在容纳MSSQL的服务器上的入站规则中,我找到了一个引用MSSQL示例的规则,并确定在属性选项卡“范围”下找到了我的旧计算机的IP地址作为“远程IP地址”。希望我每次拿到下一台机器时都能记住这一点!(退役PC的IP已删除)
@Darren,如果你能在你接受的答案下留言,也许很高兴知道@Tahbaza的哪些建议让你下了决心。
ruarlubt5#
我在从Qt连接到同时在我的计算机上运行的Microsoft SQL Server 2014时遇到了此问题。。。
我使用了以下QODBC连接字符串:
我只遇到了两个问题:
1.确定要用于服务器的内容,这必须是SQL Server示例上配置的服务器名称,可以通过打开“MicrosoftSQL 2014 management Studio”,然后查看属性找到名称(
DESKTOP-F6T7JPD\sql_Instance_Name
)1.第二个问题实际上是,必须通过在我的PC名称和示例名称之间添加另一个反斜杠
\
来修改此名称,这样在management studio上找到的名称将是:PC_Name\Sql_Instance
。请注意PC名称和示例名称之间的
\\
!vwkv1x7d6#
数据库的凭据是否配置为使用SQL用户和登录名而不是Windows用户和登录?
如果是这样,您可能需要将数据库中的SQL用户重新Map到服务器上的SQL登录。要扫描查看是否存在此问题,可以使用
EXEC sp_change_users_login 'Report'
。'Auto_Fix'
选项将自动更正系统发现的问题。您还可以运行ALTER USER $User WITH LOGIN $Login
来分别手动更正每个Map。http://technet.microsoft.com/en-us/library/ms174378.aspx升
导致此问题的原因是,在旧服务器上的数据库中为SQL用户生成的SID与新数据库上的SQL登录的SID不匹配。存储过程更正了差异。
unguejic7#
一个可能的原因是服务器未运行。如果即使在Management Studio中也无法连接,请检查SQL Server服务是否已启动,并且已将其配置为自动,以便在启动时启动。
6pp0gazn8#
如果在连接到SQL server时出现拒绝访问错误,请确保在SQL server网络配置下启用了TCP/IP协议。
请参见下面的屏幕截图
小时
a8jjtwal9#
在我的例子中,服务“SQLBrowser”被禁用。我刚刚重新启用了它,现在工作正常。