在设置外网访问SQL2008数据库 之前,首先必须保证局域网内访问SQL2008没有问题 。那么,我们先来看看局域网内访问SQL2008数据库需要哪些步骤和设置,才能做到在局域网内任何一台机器上输入SQL2008数据库IP地址和端口号即能访问。
1SQL2008数据库端设置
通常一台机器装上SQL2008后,要实现局域网访问SQL2008只要几步。
1)打开SQL2008配置工具,步骤:开始—>所有程序—>Microsoft SQL Server 2008—>Configuration Tools—>SQL Server Configuration Manager;
2)在打开的配置界面,双击左边SQL Server 网络配置,可以看到本机安装的数据库实例的协议,一般有SQL Express的协议和MSSQLSERVER的协议,如果你安装时不是使用默认实例名,那么在这里你应该找到自己需要设置外网访问的数据库实例名,双击它;
3)此时,可以看到四个协议,一般启用前三个,禁用最后一个,即启用shared memory、named pipes和TCP/IP,禁用VIA;
4)启用TCP/IP后,顺便应该鼠标右键该协议属性,设置下开放的端口,在IP1-IP9中都可以设置成1433,活动和已启用都选择是,最后一个IPALL也可设置成1433;ok,这时必须在配置页面的SQL Server服务项下面重启服务器,才能使得设置生效,如果这样还不行,建议重启电脑。
5)可以关闭了配置工具了,接下来打开SQL Server Manager Studio,登入您的数据库,打开后在对象资源管理器找到你数据库服务器的根节点,鼠标右键,选择方面,在方面下拉菜单下选择外围应用配置,在下面找RomoteDacEnabled,设置为True,然后重启数据库;(这个选项在我的设置过程中貌似没有起到作用,不设置为True好像远程也能访问);
6)设置到这里基本上就可以实现局域网内访问SQL2008数据库了。如果还不行,请将X:\Program Files\Microsoft SQL Server\MSSQL10MSSQLSERVER\MSSQL\Binn\sqlservrexe在windows防火墙中设置程例外,也将X:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowserexe设置成例外,把1433端口也设置成例外。
整体简介:
为了安全起见默认情况下Mysql数据库的监听地址是127001,就是指本机下的程序才能访问。
监听地址是0000 ,表示该mysql允许所有IP地址进行连接,这是允许远程连接的基础
监听地址是127001,则代表该mysql只允许所在服务器本机连接,外网是无法连接的
所需工具原料:
Linux,apache,php,mysql
解决方法:
1 用命令vi 编辑/etc/mysql/mycnf 如图:
在[mysqld]节中增加下面一行:
2 bind-address=0000 #全部地址或者指定的ip地址如图所示
3 重启服务
service mysqld restart
4 Linux服务器中执行如下命令可以查看: netstat -nutlp|grep mysql(只查看mysql的监听), netstat -tln(查看所有的监听)是否成功。
要点:
1确认服务器端SQL服务端口号是否为:1433
2如果不是1433,配置客户端
3建立服务器端登录帐号,确保角色及管理数据库
一、查看服务器端情况
1 看ping 服务器IP能否ping通。
这个实际上是看和远程sql server 服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 服务器的IP拼写正确。
2 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。
如telnet 202114100100 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 127001 1433 listening 的项。如果没有,则通常需要给sql server 2000打上至少sp3的补丁。其实在服务器端启动查询分析器,输入select @@version 执行后可以看到版本号,版本号在802039以下的都需要打补丁。
如果以上都没问题,这时你再做telnet 服务器ip 1433 测试,将会看到屏幕一闪之后光标在左上角不停闪动。恭喜你,你马上可以开始在企业管理器或查询分析器连接
1 如果你可以调整单位的 防火墙 或者 路由器
你可以做nat地址转换, 将单位对外服务器上的 某2个 端口 映射到 局域网上数据库的 1433和1434端口。
不过这样 就把 数据库暴露在外网了, 有风险
2 楼上说的***,是很安全的做法, 不过需要架设***才行。
3 其他好像什么办法了。
一般的话还是建议应用(web)通过内网来连接数据库,这样比较安全一些 。如果想公网访问的话需要配置安全组,对外特定的ip 开启 3306 端口。 ,如果没有固定的ip 地址,还是建议找一台 堡垒机(有固定ip的) 来访问。
以上就是关于如何设置外网访问sql2008数据库服务器全部的内容,包括:如何设置外网访问sql2008数据库服务器、怎么设置才能让外网ip可以访问mysql数据库、sql 怎样外网连接远程数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)