sql 怎样外网连接远程数据库?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 怎样外网连接远程数据库?相关的知识,希望对你有一定的参考价值。

服务器是server2003 客户端不固定
远程装的2000 和2005
现在问题是访问机器怎么样通过外网访问服务器上sql2000 中的一个数据库
最好能举出列子。。。
急急急啊!!!!

要点:
1.确认服务器端SQL服务端口号是否为:1433
2.如果不是1433,配置客户端
3.建立服务器端登录帐号,确保角色及管理数据库
一、查看服务器端情况
1. 看ping 服务器IP能否ping通。
这个实际上是看和远程sql server 服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 服务器的IP拼写正确。
2. 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。
如telnet 202.114.100.100 1433
通常端口值是1433,因为1433是sql server 的对于Tcp/IP的默认侦听端口。如果有问题,通常这一步会出问题。通常的提示是“……无法打开连接,连接失败"。
如果这一步有问题,应该检查以下选项。
1) 检查远程服务器是否启动了sql server 服务。如果没有,则启动。
2) 检查sql server服务器端有没启用Tcp/IP协议,因为远程连接(通过因特网)需要靠这个协议。检查方法是,在服务器上打开 开始菜单->程序->Microsoft SQL Server->服务器网络实用工具,看启用的协议里是否有tcp/ip协议,如果没有,则启用它。
3) 检查服务器的tcp/ip端口是否配置为1433端口。仍然在服务器网络实用工具里查看启用协议里面的tcp/ip的属性,确保默认端口为1433,并且隐藏服务器复选框没有勾上。
事实上,如果默认端口被修改,也是可以的,但是在客户端做telnet测试时,写服务器端口号时必须与服务器配置的端口号保持一致。如果隐藏sql server服务器复选框被勾选,则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接,但是Tcp/ip协议的默认端口将被隐式修改为2433,在客户端连接时必须作相应的改变(具体方式见 二:设置客户端网络实用工具)。
4) 如果服务器端操作系统打过sp2补丁,则要对windows防火墙作一定的配置,要对它开放1433端口,通常在测试时可以直接关掉windows防火墙(其他的防火墙也关掉最好)。(4、5步我没有做就成功了)
5) 检查服务器是否在1433端口侦听。如果sql server服务器没有在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 测试,将会看到屏幕一闪之后光标在左上角不停闪动。恭喜你,你马上可以开始在企业管理器或查询分析器连接
参考技术A 这好像不是你数据库设置的问题,而是局域网的问题,你试试看,在控制面板>管理工具>本地安全策略,中启动你和对方的guest帐号,网络访问方式改为经典-本地访问 ,在拒绝从网络访问这台计计算机中删除所有的,拒绝做为服务器登陆中清空所有的,然后关闭windows防火墙,

局域网内winXP(professional)的访问是个经常困扰大家的不大不小的问题,上次说我不够详细,你现在可以按以下的方法试一下,如果不成功,也可照此方法来解决局域网中经常出现的莫名奇妙的错误!!!我也是做DBMS的,出现的很多问题,貌似数据库故障,其实不然!!
一、首先启用guest来宾帐户;
二、控制面板→管理工具→本地安全策略→本地策略→用户权利指派里,“从网络访问此计算机”中加入guest帐户,而“拒绝从网络访问这台计算机”中删除guest帐户;
三、我的电脑→工具→文件夹选项→查看→去掉“使用简单文件共享(推荐)”前的勾;
四、设置共享文件夹;
五、控制面板→管理工具→本地安全策略→本地策略→安全选项里,把“网络访问:本地帐户的共享和安全模式”设为“仅来宾-本地用户以来宾的身份验证”(可选,此项设置可去除访问时要求输入密码的对话框,也可视情况设为“经典-本地用户以自己的身份验证”);
六、右击“我的电脑”→“属性”→“计算机名”,该选项卡中有没有出现你的局域网工作组名称,如“work”等。然后单击“网络 ID”按钮,开始“网络标识向导”:单击“下一步”,选择“本机是商业网络的一部分,用它连接到其他工作着的计算机”;单击“下一步”,选择“公司使用没有域的网络”;单击“下一步”按钮,然后输入你的局域网的工作组名,如“work”,再次单击“下一步”按钮,最后单击“完成”按钮完成设置。

一般经过以上步骤,基本可以解决。如果不行,再往下看:
七、检查本地连接是否被禁用,右击“本地连接”→“启用”;
八、关闭网络防火墙;
九、检查是否启用了域,是否加入了该域并检查域设置;
十、检查是否关闭了server服务;
十一、检查本地连接IP、子网掩码、网关及DNS设置是否有误;
十二、“本地连接”→属性→常规,检查是否安装了“Microsoft网络文件和打印机共享”、“Microsoft网络客户端”以及TCP/IP协议;
十三、某些局域网游戏和软件须安装NetBEUI协议。而且网上有文章说,在小型局域网中,微软在WinXP中只支持的TCP/IP协议和NWLink IPX/SPX/NetBios兼容协议表现不尽如人意,在小型局域网(拥有200台左右电脑的网络)中NetBEUI是占用内存最少、速度最快的一种协议。
安装方法:

①放入Windows XP安装光盘,到“valueaddMsft et etbeui”目录下将Netnbf.inf复制C:\Windows\INF中;

②将Nbf.sys复制到C:\Windows\System32\Drivers中;

③开始→控制面板→网上邻居”→“网络连接”→“本地连接”(就是你目前使用中的局域网连接)上按右键→“属性”→“常规”→“安装”→“通讯协议”→→“添加”,此时就可以看到“NetBEUI Protocol”这一项(此项原来是没有的),选取NetBEUI之后,按确定就OK了。

十四、作为网络浏览服务器的电脑由于病毒、配置低运行慢以及死机等原因导致网络上的计算机列表得不到更新,使得某些机器有时候在网上邻居中找不到。

解决办法:最简单的办法是重启各种网络设备和电脑,或者关闭个别有上述问题的电脑上的网络浏览服务器功能,方法如下:
win2000/XP下禁用Computer Browser服务

十五、给系统打上补丁。WinXP访问网上邻居的速度较慢,这是WinXP的一个Bug,当我们打开网上邻居时,操作系统首先会从计划任务中进行查找,因此就大大影响了访问的速度,除非您已经安装了SP1补丁才不会存在这个问题。

可以手工解决这一问题。从注册表中找到“\HKEY_LOCAL_MACHINE\
SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace”,这里有一个名为“D6277990-4C6A-11CF-8D87-00AA0060F5BF”的子键,该子键指向“计划任务(Scheduled Tasks)”,将它直接删除即可。

十六、先卸载网卡驱动,重启再重装;

十七、硬件问题,检查网卡、网线、集线器、路由器等,在检查之前,最好先重启一下网络设备(集线器、交换机、路由器)看能否解决;

十八、病毒(木马)原因。升级病毒库安全模式下全盘杀毒。
参考资料:经验
参考技术B 网上弄个虚拟局域网的软件,把外网的环境转换层内网,或者弄个外网固定ip给服务器

SQL语句怎样把远程数据更新到本地数据库中。

远程数据库的表和本地数据库的表名是一样的。把远程数据库的表和本地表比较 把不同的插入到本地数据库的表中来.应该怎样写sql语句。

建立从本地访问远程数据库的链路DBLINK。
登入本地数据库用户。
insert into 本地表 select * from 方案名.表名@DBLINK where 主键 not in (select 主键 from 本地表);追问

这个是ORAcle 数据库把 ,我的是SQLserver的

参考技术A sqlserver下可以建立连接服务器名称,然后更新语法是 update tab1 t1 set a=t2.a from tab1,连接名.dbo.tab1 t2 where t1.id=t2.id
不同的数据库用法不相同
参考技术B 难道不能直接还原库么,搞这麻烦 参考技术C 你可以把远程的数据库还原到本地吗?

以上是关于sql 怎样外网连接远程数据库?的主要内容,如果未能解决你的问题,请参考以下文章

用MysQL怎么进行远程连接数据库

本地数据库(SQL Server)远程连接服务器端服务器

怎样访问公网上的sqlserver

QT中怎样连接MYsql数据库,远程连接数据库等

windows server 2012外网远程连接

SQL PLUS 如何远程连接ORACLE数据库