精华内容
下载资源
问答
  • 如何远程连接SQL Server数据库图文教程
  • 如何远程连接SQL Server数据库的图文教程
  • 远程连接Sql Server2005数据库,共用一个数据库,达到远程访问的目的。
  • 远程连接SQL Server数据库

    千次阅读 2014-12-03 07:52:09
    解决SQL Server管理器无法连接远程数据库的问题  许多初学者在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例的问题,大致的错误描述如下: An error has occurred while ...

    解决SQL Server管理器无法连接远程数据库的问题

      许多初学者在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例的问题,大致的错误描述如下:

    An error has occurred while establishing a connection to the server.

    (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 5)

    An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 1326)

      意思是说不能在数据库之间建立一个连接,原因是命名管道提供者出现错误。其实这是一个比较典型的数据库服务器设置问题,在局域网或广域网中都可能会遇到,我们只需要对数据库服务器进行一些配置便可以解决这个问题,来看看具体的步骤。

     

    1.确保服务器端数据库服务已经启动

      开始->所有程序->Microsoft SQL Server 2008->Configutation Tools,打开SQL Server Configuration Manager,点击SQL Server Services,查看数据库服务是否已经启动,如果服务未开启,手动启动它。当然,你还可以通过点击Windows中的开始->控制面板->管理者工具->服务,来查看相应的数据库服务是否启动。或者如果服务器和你的机器在同一网络,你还可以通过命令“sqlcmd -L”(注意L要大写)去查看该网络内所有可用的SQL Server服务器。

     

    2.在SQL Server Configuration中启用TCP/IP

       多个SQL Server服务器之间通过网络相互通信是需要TCP/IP支持的,为使SQL Server服务器能被远程连接必须确保TCP/IP已经启用。按照前面介绍的步骤打开SQL Server Configuration Manager,然后打开SQL Server Network Configuration,选择你要设置的数据库,然后点击TCP/IP,右键启用。如果有必要,你还可以启用Named Pipes。记住,所有的修改都必须在重启SQL Server服务之后才能生效!

     

    3.在Windows防火墙中打开SQL Server的端口号

      很多时候我们在对数据库服务器本身做了很多次设置后仍然无法成功建立远程连接,这时就要考虑是否是防火墙在作怪。默认情况下,许多端口号和服务都会被防火墙所禁止而不能远程访问或执行,SQL Server默认的端口号也不例外。我们应该重新设置Windows防火墙给SQL Server添加例外。除非人为修改,默认情况下SQL Server的端口号是1433,将该端口号添加到Windows防火墙中。如果SQL Server存在命名实例,那么也应该将SQL Server browser添加到Windows防火墙中。(有关SQL Server的命名实例将在后面介绍)

      打开Windows控制面板,选择Windows防火墙->Change Settings->Exceptions->Add Port

     

      点击Add port...在弹出的对话框中填入:

      Name: SQL

      Port Number: 1433

      Protocol: Select TCP

     

     

    4.在SQL Server管理器中启用远程连接

       这一步通常会被数据库管理员忽略,如果未启用数据库远程连接,数据库实例只允许在本地进行连接而不能被远程连接,启用远程连接同样非常重要。默认设置中远程连接是被禁止的。如下图,打开SQL Server Management Studio,右键点击数据库实例然后选择属性菜单。

       在打开的窗口中,左侧选择Connections,然后勾选"Allow remote connections to this server"。

     


    启用SQL Server Browser服务

       如果SQL Server在安装时不是用的默认实例名而是自定义的实例名,并且没有配置特定的TCP/IP端口号,那么按照我们前面的描述SQL Server仍然不能支持远程连接。但如果你启用的SQL Server Browser服务,便可以通过动态TCP/IP端口号进行远程SQL Server连接。启用SQL Server Browser服务非常简单,与启用SQL Server类似,在SQL Server Configuration Manager中右键点击SQL Server Browser,然后选择启用。启用该服务将会影响到服务器上所有已安装的SQL Server实例。

     

    在防火墙中为sqlbrowser.exe应用程序创建例外

      我们在前面已经提到了,自定义命名的SQL Server实例要支持远程连接需要启用sqlbrowser服务,Windows防火墙可能会阻止该服务执行。因此,我们必须在Windows防火墙中给sqlbrowser服务添加例外。

      首先找到服务器上安装sqlbrowser.exe程序的路径,如C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe。如果不确定SQL Server安装在什么地方,你可以在Windows搜索一下文件名。与我们在前面介绍的在防火墙中添加SQL TCP/IP端口号的方法类似,给sqlbrowser.exe应用程序添加防火墙例外。

     

    重新创建数据库别名

      创建SQL Server别名并在应用程序中使用它很常见。使用数据库别名可以确保一旦数据库的位置发生了变化,如更换了新的服务器,IP地址发生了变化等,应用程序中的数据库连接字符串不用修改。否则你更换了数据库的位置,你还要通知所有使用该数据库的应用程序修改源代码或配置文件中的连接字符串,这恐怕是不可能的。所以,使用数据库别名来配置连接字符串是一个非常明智的选择。另外,你还可以使用相同的别名来指向不同的数据库实例,当修改别名参数时,可以马上实现数据库之间的切换。创建数据库别名非常简单,在SQL Server Configuration Manager中选择Aliases进行创建。

    http://blog.csdn.net/goodshot/article/details/45397757
    展开全文
  •  这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确。  二 在Dos或命令行下输入telnet 服务器IP 端口,看能否...
      
    

    一 看ping 服务器IP能否ping通。

      这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确。

      二 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。

      如telnet 202.114.100.100 1433

      通常端口值是1433,因为1433是sql server 2000的对于Tcp/IP的默认侦听端口。如果有问题,通常这一步会出问题。通常的提示是“……无法打开连接,连接失败"。

      如果这一步有问题,应该检查以下选项。

      1 检查远程服务器是否启动了sql server 2000服务。如果没有,则启动。

      2 检查服务器端有没启用Tcp/IP协议,因为远程连接(通过因特网)需要靠这个协议。检查方法是,在服务器上打开 开始菜单->程序->Microsoft SQL Server->服务器网络实用工具,看启用的协议里是否有tcp/ip协议,如果没有,则启用它。

      3 检查服务器的tcp/ip端口是否配置为1433端口。仍然在服务器网络实用工具里查看启用协议里面的tcp/ip的属性,确保默认端口为1433,并且隐藏服务器复选框没有勾上。

      事实上,如果默认端口被修改,也是可以的,但是在客户端做telnet测试时,写服务器端口号时必须与服务器配置的端口号保持一致。如果隐藏服务器复选框被勾选,则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接,但是Tcp/ip协议的默认端口将被隐式修改为2433,在客户端连接时必须作相应的改变。

      4 如果服务器端操作系统打过sp2补丁,则要对windows防火墙作一定的配置,要对它开放1433端口,通常在测试时可以直接关掉windows防火墙(其他的防火墙也关掉最好)。

      5 检查服务器是否在1433端口侦听。如果服务器没有在tcp连接的1433端口侦听,则是连接不上的。检查方法是在服务器的dos或命令行下面输入

      netstat -a -n 或者是netstat -an,在结果列表里看是否有类似 tcp 127.0.0.1 1433 listening 的项。如果没有,则通常需要给sql server 2000打上至少sp3的补丁。其实在服务器端启动查询分析器,输入 select @@version 执行后可以看到版本号,版本号在8.0.2039以下的都需要打补丁。

      如果以上都没问题,这时你再做telnet 服务器ip 1433 测试,将会看到屏幕一闪之后光标在左上角不停闪动。恭喜你,你马上可以开始在企业管理器或查询分析器连接了。

      三 检查客户端设置

      程序->Microsoft SQL Server -> 客户端网络使用工具。像在服务器网络实用工具里一样,确保客户端tcp/ip协议启用,并且默认端口为1433(或其他端口,与服务器端保持一致就行)。

      四 在企业管理器里或查询那分析器连接测试

      企业管理器->右键SQlserver组->新建sqlserver注册->下一步->写入远程IP->下一步->选Sqlserver登陆->下一步->写入登陆名与密码(sa,password)->下一步->下一步->完成

      查询分析器->文件->连接->写入远程IP->写入登录名和密码(sa,password)->确定

      通常建议在查询分析器里做,因为默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是4秒,而查询分析器是15秒。

      修改默认连接超时的方法:

      企业管理器->工具->选项->在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡->连接设置->在 登录超时(秒) 后面的框里输入一个较大的数字

      查询分析器->工具->选项->连接->在 登录超时(秒) 后面的框里输入一个较大的数字

      通常就可以连通了,如果提示错误,则进入下一步。

      五 错误产生的原因通常是由于SQL Server使用了"仅 Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(如 sa )进行连接。解决方法如下所示:

      1 在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server。

      2 展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡。

      3 在"身份验证"下,选择"SQL Server和 Windows "。

      4 重新启动SQL Server服务。(在dos或命令行下面net stop mssqlserver停止服务,net start mssqlserver启动服务,也是一种快捷的方法)。

      附注:在连接本地服务器时,通常使用的是命名管道协议(在服务器网络实用工具里可以看到启用的协议有这个),默认端口是445,因此在本地能连通是不能说明什么问题的,连接远程服务器是完全不同的协议)

    展开全文
  • 远程连接SQL SERVER数据库必须要做的事: 如果是SQL SERVER2000,必须打SP4补丁。 如果是SQL SERVER2005,需要有以下几个步骤: 1:在外围应用配置器中,选中“本地连接和远程连接”,并选用适当的协议,一般...

    远程连接SQL SERVER数据库必须要做的事:

    如果是SQL SERVER2000,必须打SP4补丁。

    如果是SQL SERVER2005,需要有以下几个步骤:

    1:在外围应用配置器中,选中“本地连接和远程连接”,并选用适当的协议,一般选第一项“TCP/IP”或第三项。

    2:重新启动服务。

    3:启动browser服务(重要)。


    展开全文
  • 本例采用C#语言实现在两台电脑之间的数据库访问连接
  • C#和ADO.NET是什么关系?为什么讲解C#连接数据库的资料里面普遍都讲的用ADO.NET技术连接数据库?这里读者仅需记住:用C#开发软件需要连接数据库时,尽管使用ADO.NET技术好了,不用考虑它们啥关系。
  • 远程连接sql server数据库服务器的方法,支持没有固定IP的服务器 很多兄弟反映很难看懂,我也看了一下,的确有一些无用的代码,当时调试用的,干扰大家的思路,后来,我修改一下,并写了一点说明,应该没问题啦 这个版本就...
  • 本文档,实现在局域网内远程访问SQL server 2005的配置,详细介绍了步骤,并用贴图,以快速进行设置。在VS2012中通过两种方法测试是否对SQL服务器连接成功.其中一种以C#代码测试为主,并贴有完整测试代码。通过个人...
  • 本文档,实现在局域网内远程访问SQL server 2005的配置,详细介绍了步骤,并用贴图,以快速进行设置。在VS2012中通过两种方法测试是否对SQL服务器连接成功.其中一种以C#代码测试为主,并贴有完整测试代码。通过个人...
  • 远程连接sql server数据库服务器的方法,支持没有固定IP的服务器 请仔细看程序目录下的说明文件 本程序主要用于不定IP的sqlserver数据库连接,原理是通过程序自动运行ping.bat文件得到c:\server.ini文件,再从...
  • Qt远程连接SQlServer数据库

    千次阅读 2012-07-18 17:04:06
    /**连接sql server数据库   *数据库名:abc   *表名:SQL_2000   *用户名:sa   *密码:123   *端口号:(默认)1433  */  void MainDialog::connectSql(QString sIp, int iPort, QString ...

    一:代码。

    1. /**连接sql server数据库 
    2.   *数据库名:abc 
    3.   *表名:SQL_2000 
    4.   *用户名:sa 
    5.   *密码:123 
    6.   *端口号:(默认)1433 
    7. */  
    8. void MainDialog::connectSql(QString sIp, int iPort,  QString sDbNm, QString sUserNm, QString sPwd)  
    9. {  
    10.     db = QSqlDatabase::addDatabase("QODBC");  
    11.     QString dsn = QString("Driver={sql server};SERVER=%1;PORT=%2;DATABASE=%3;UID=%4;PWD=%5;")  
    12.                   .arg(sIp)  
    13.                   .arg(iPort)  
    14.                   .arg(sDbNm)  
    15.                   .arg(sUserNm)  
    16.                   .arg(sPwd);  
    17.     db.setDatabaseName(dsn);  
    18.   
    19.   
    20.     /*连接sql 2000*/  
    21.     bool r = db.open();  
    22.     if (r)  
    23.     {  
    24.         qDebug() << "SQL Server 2000 Connect OK!";  
    25.   
    26.         /* 计算当前表中id*/  
    27.         QSqlQuery query1 = QSqlQuery(db);  
    28.         query1.clear();  
    29.         query1.prepare("select top 1 ID from SQL_2000 order by ID desc");  
    30.         bool a = query1.exec();  
    31.         int id;  
    32.         if (a)  
    33.         {  
    34.             while(query1.next())  
    35.             {  
    36.                 id = query1.value(0).toInt();  
    37.             }  
    38.         }  
    39.   
    40.         /*插入数据*/  
    41.         QSqlQuery query2 = QSqlQuery(db);  
    42.         QString sq1 = QObject::tr("insert into SQL_2000(Id,Ip,Port,UserName,Password,DbType,DbName)"  
    43.                                   "values (?, ?, ?, ?, ?, ?, ?)");  
    44.         bool b = query2.prepare(sq1);  
    45.         if(b)  
    46.         {  
    47.             qDebug() << "insert data success!";  
    48.         }  
    49.         query2.bindValue(0, id+1);  
    50.         query2.bindValue(1, sIp);  
    51.         query2.bindValue(2, iPort);  
    52.         query2.bindValue(3, sUserNm);  
    53.         query2.bindValue(4, sPwd);  
    54.         query2.bindValue(5, sDbType);  
    55.         query2.bindValue(6, sDbNm);  
    56.   
    57.         /*查询数据*/  
    58.         QSqlQuery query3 = QSqlQuery(db);  
    59.         query3.prepare("select * from SQL_2000 where Id=1");  
    60.         bool c = query3.exec();  
    61.         if (c)  
    62.         {  
    63.             qDebug() << "select data success!";  
    64.             while(query3.next())  
    65.             {  
    66.                 qDebug() << query3.value(0);  
    67.                 qDebug() << query3.value(1);  
    68.                 qDebug() << query3.value(2).toInt();  
    69.             }  
    70.         }  
    71.         else  
    72.         {  
    73.             qDebug() << query3.lastError().text().data();  
    74.         }  
    75.   
    76.         /*删除数据*/  
    77.         QSqlQuery query4 = QSqlQuery(db);  
    78.         query4.prepare("delete from SQL_2000 where Id=1");  
    79.         bool d = query4.exec();  
    80.         if (d)  
    81.         {  
    82.             qDebug() << "delete data success!";  
    83.         }  
    84.         else  
    85.         {  
    86.             qDebug() << query3.lastError().text().data();  
    87.         }  
    88.     }  
    89.     else  
    90.     {  
    91.         QMessageBox::information(this, tr("提示"), tr("Sql Server数据库连接失败!"), tr("确定"));  
    92.         qDebug() <<"error_SqlServer:\n" << db.lastError().text();  
    93.     }  
    94.   
    95.     db.close();  
    96. }  

    二:安装。

        参考http://blog.csdn.net/mingxia_sui/article/details/7723978(安装图解)


    三:连接过程遇到的问题。

    问题:"[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝 [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). [Microsoft][ODBC SQL Server Driver]无效的连接字符串属性 QODBC3: Unable to connect"

           通过http://topic.csdn.net/u/20100429/10/586ed537-0a66-48ac-97d6-e662e5199339.html对比,我发现问题:

           服务器没有在1433端口侦听。

          (测试方法:在dos下输入netstat -a -n或者netstat -an;结果:找不到tcp 127.0.0.1 1433 listening的项)

    解决方法:

        安装补丁(我的版本对应sp4)

           打补丁的过程中出现问题:不能打开要写入的文件C:\WINDOWS\system32\ntwdblib.dll。

           重启还是不行,我就把sp4安装包中的ntwdblib.dll直接拷贝到C:\WINDOWS\system32中。

           再试telnet 127.0.0.1 1433,居然连接上了。

       网卡设置:端口没被侦听,也可能是网卡的问题。

           本地连接--->属性--->Internet协议(TCP/IP)--->属性--->高级--->选项--->属性--->全部允许TCP端口。

           

    1. /**连接sql server数据库 
    2.   *数据库名:abc 
    3.   *表名:SQL_2000 
    4.   *用户名:sa 
    5.   *密码:123 
    6.   *端口号:(默认)1433 
    7. */  
    8. void MainDialog::connectSql(QString sIp, int iPort,  QString sDbNm, QString sUserNm, QString sPwd)  
    9. {  
    10.     db = QSqlDatabase::addDatabase("QODBC");  
    11.     QString dsn = QString("Driver={sql server};SERVER=%1;PORT=%2;DATABASE=%3;UID=%4;PWD=%5;")  
    12.                   .arg(sIp)  
    13.                   .arg(iPort)  
    14.                   .arg(sDbNm)  
    15.                   .arg(sUserNm)  
    16.                   .arg(sPwd);  
    17.     db.setDatabaseName(dsn);  
    18.   
    19.   
    20.     /*连接sql 2000*/  
    21.     bool r = db.open();  
    22.     if (r)  
    23.     {  
    24.         qDebug() << "SQL Server 2000 Connect OK!";  
    25.   
    26.         /* 计算当前表中id*/  
    27.         QSqlQuery query1 = QSqlQuery(db);  
    28.         query1.clear();  
    29.         query1.prepare("select top 1 ID from SQL_2000 order by ID desc");  
    30.         bool a = query1.exec();  
    31.         int id;  
    32.         if (a)  
    33.         {  
    34.             while(query1.next())  
    35.             {  
    36.                 id = query1.value(0).toInt();  
    37.             }  
    38.         }  
    39.   
    40.         /*插入数据*/  
    41.         QSqlQuery query2 = QSqlQuery(db);  
    42.         QString sq1 = QObject::tr("insert into SQL_2000(Id,Ip,Port,UserName,Password,DbType,DbName)"  
    43.                                   "values (?, ?, ?, ?, ?, ?, ?)");  
    44.         bool b = query2.prepare(sq1);  
    45.         if(b)  
    46.         {  
    47.             qDebug() << "insert data success!";  
    48.         }  
    49.         query2.bindValue(0, id+1);  
    50.         query2.bindValue(1, sIp);  
    51.         query2.bindValue(2, iPort);  
    52.         query2.bindValue(3, sUserNm);  
    53.         query2.bindValue(4, sPwd);  
    54.         query2.bindValue(5, sDbType);  
    55.         query2.bindValue(6, sDbNm);  
    56.   
    57.         /*查询数据*/  
    58.         QSqlQuery query3 = QSqlQuery(db);  
    59.         query3.prepare("select * from SQL_2000 where Id=1");  
    60.         bool c = query3.exec();  
    61.         if (c)  
    62.         {  
    63.             qDebug() << "select data success!";  
    64.             while(query3.next())  
    65.             {  
    66.                 qDebug() << query3.value(0);  
    67.                 qDebug() << query3.value(1);  
    68.                 qDebug() << query3.value(2).toInt();  
    69.             }  
    70.         }  
    71.         else  
    72.         {  
    73.             qDebug() << query3.lastError().text().data();  
    74.         }  
    75.   
    76.         /*删除数据*/  
    77.         QSqlQuery query4 = QSqlQuery(db);  
    78.         query4.prepare("delete from SQL_2000 where Id=1");  
    79.         bool d = query4.exec();  
    80.         if (d)  
    81.         {  
    82.             qDebug() << "delete data success!";  
    83.         }  
    84.         else  
    85.         {  
    86.             qDebug() << query3.lastError().text().data();  
    87.         }  
    88.     }  
    89.     else  
    90.     {  
    91.         QMessageBox::information(this, tr("提示"), tr("Sql Server数据库连接失败!"), tr("确定"));  
    92.         qDebug() <<"error_SqlServer:\n" << db.lastError().text();  
    93.     }  
    94.   
    95.     db.close();  
    96. }  
    展开全文
  • Win7 远程连接 SQL Server
  • 如何远程连接SQL Server数据库

    千次阅读 2007-03-21 12:46:00
    一.设置客户端网络实用工具 点击“开始”-“程序”,在“Microsoft SQL Server”菜单中选择“客户端网络实用工具”。
  • tsql -S MYSQLSERVER -H sqlserver数据库IP -p 1433 -U 账号 -P 密码 成功会看到如下信息: locale is "en_US.UTF-8" locale charset is "UTF-8" using default charset "UTF-8" 1> ...
  • wince连接远程sqlserver数据库 sqlclient.dll和dbnetlib.dll wince连接远程sqlserver数据库 sqlclient.dll和dbnetlib.dll
  • sqlserver 连接远程sqlserver数据库

    千次阅读 2019-02-22 16:44:48
    sqlserver 连接远程sqlserver数据库 */ /*1、新增链接服务器*/ exec sp_addlinkedserver @server='remote_server', /*链接服务器的名称*/ @srvproduct='', @provider='SQLOLEDB', @datasrc='12...
  • ②打开数据库检查是否开启远程连接,如下所示; ③点击左下角开始-->打开SqlServer xxx配置管理器 ④启用TCP/IP ⑤再查看服务器的网络端口状态(即在该数据库服务器电脑上打开CMD输入netstat -an 查看...
  • navicat连接sqlserver数据库

    万次阅读 2017-08-14 11:13:39
    一、nacicat连接本地sqlserver数据库  二、nacicat连接远程sqlserver数据库
  • Navicat连接sqlserver数据库

    千次阅读 2020-09-27 15:45:43
    一、nacicat连接本地sqlserver数据库 navicat连接本地sqlserver...navicat连接远程sqlserver数据库需要安装sqlserver客户端,不过navicat会自动从sqlserver服务器上去下载安装软件,安装过程也是一直点下一步即可。
  • 连接远程SQL Server数据库并执行SQL语句(远程IP=192.168.0.1,用户名=sa,密码=surveynet)
  • 主要介绍了VBA中连接SQLSERVER数据库例子,VBA是指Visual Basic for Applications,是Visual Basic的一种宏语言,需要的朋友可以参考下
  • C#连接SQL Server数据库

    千次阅读 2015-03-29 10:59:29
    C#连接SQL Server数据库  这里简单介绍常见连接SQL Server数据库的办法。  要连接的数据库是本地SQL Server,官方的Northwind数据库。  在VS2010中创建一个窗体应用程序,添加一个按钮,其作用是点击后,验证...
  • SSM如何连接sqlserver数据库?目前网上的几乎都是连接mysql的。替换src目录下的configuration.properties,以及WEB-INF目录下的context.xml文件就可以连接上了。lib目录下加入sqljdbc42.jar用于连接Sqlserver。再把...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 109,175
精华内容 43,670
关键字:

远程连接sqlserver数据库