注册 登录
编程论坛 VFP论坛

VFP+SQL连接“服务器名称能连上,服务器IP地址连不上”

vfp2SQL2023 发布于 2023-01-01 14:27, 2309 次点击

各位大神2023年好!

        我遇到VFP+SQL连接“服务器名称能连上,服务器IP地址连不上”的情况:

操作系统:服务器、客户端都是win10
服务器数据库系统:SQL SERVER 2005,也装了VFPODBC.msi不知道有没有用。
客户端:vfp9.0

VFP连接SQL方式:
A: nCon=SQLSTRINGCONNECT("driver=SQL Server;Server=服务器名称;database=DB;Uid=sa;pwd=密码")
B: nCon=SQLSTRINGCONNECT("driver=SQL Server;Server=服务器ip地址;database=DB;Uid=sa;pwd=密码")
注:服务器ip地址通过花生壳获得映射IP地址,在客户端ping能连接成功。

一、服务器、客户端在相同wifi下连接(等同于在局域网内),A连上,B连不上。
二、服务器、客户端在不同wifi下连接(等同于在外网环境),A、B都连不上。抓狂ing

我的诉求:无论在局域网,还是在广域网,希望B都能连上。

截至2023.1.1,能从网上能搜到的如下办法都试了,
sql server 2005配置管理器-MSSQLSERVER协议-TCP/IP ip地址 127.0.0.1 启用1433端口,启用sql server browser,启用SQL SERVER代理。
但仍然不能解决问题。

请大佬赐教,谢谢!qq:1193878638。
20 回复
#2
吹水佬2023-01-01 14:53
代理的IP,有无加上端口,试试加上端口。
#3
nbwww2023-01-01 19:43
防火墙?映射?    127.0.0.1?  
#4
vfp2SQL20232023-01-01 20:32
1.在sql server 2005配置管理器-MSSQLSERVER协议-TCP/IP下,ip1-ip14项下的1433端口都启用了,不能解决问题;
2.sql server 服务器端,Windows防火墙关闭,也不能解决问题。
困惑ing...,求教
#5
mywisdom882023-01-01 23:23
是不是本机测试,在本机上测试一下
#6
vfp2SQL20232023-01-02 11:17
在客户端和SQL server 2005服务器都关闭了防火墙、退出了杀毒软件,并且服务器客户端协议端口1433开启后,

在客户端和服务器端,都分别进行了ping 和 telnet,发现:

虽然 ping SQLserver服务器ip地址 是连接成功的,
但是 telnet SQLserver服务器ip地址 1433 均连接失败。

问题依然存在...

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2023-1-2 11:22编辑过]

#7
吹水佬2023-01-02 11:30
代理服的IP有不确定性,代理的域名是确定的,如果通过域名使用正常应该就没问题。
#8
vfp2SQL20232023-01-02 12:30
回复 7楼 吹水佬

哥:
    我刚才尝试了,结果如下(以下IP、域名均指服务器的。不是客户端。):

A、相同wifi下,
1.PING ip、域名、服务器名都成功;
2.TELNET ip、域名、服务器名都失败。

B、不同wifi下,
1.PING ip、域名成功,PING 服务器名称失败;
2.TELNET ip、域名、服务器名都失败。

我的诉求是,外网环境下能成功连上sql server(目前自能内网环境下能连上)。然鹅问题依然存在。

盼大佬赐教...
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2023-1-2 12:38编辑过]

#9
nbwww2023-01-02 12:32
这个IP单指你服务器?还是整个局域网?肯定是整个局域网吧,端口映射了吗?   把服务器网络断开应该也能PING通这个IP   你试下
#10
vfp2SQL20232023-01-02 12:48
回复 8楼 vfp2SQL2023

您好:
    我现在环境只是两台电脑,通过相同手机热点、或者不同手机热点上网。没有路由。

臣以为,这样的环境,
相同热点下,两台电脑等同于局域网,因为这样环境下,客户端、服务端都能连上sqlserver能操作数据库。

不同热点下,等同于外网环境。这样环境下,ping客户端的ip、域名成功,telnet客户端的ip、域名失败。
#11
吹水佬2023-01-02 13:06
ping与telnet协议不同,telnet服务有无打开?
#12
nbwww2023-01-02 16:01
不同热点下,等同于外网环境。这样环境下,ping客户端的ip、域名成功,这个PING到的是热点的也就是手机的IP   并不是你服务器的IP   需要映射端口才能到你的服务器  
telnet服务端的ip、域名失败是必然的
#13
vfp2SQL20232023-01-04 16:37

继续尝试,今天,
1、打开控制面板-管理工具-打开数据源-系统DSN-添加驱动程序,
2、输入要连接的哪个服务器上的数据库,这个框,填服务器名称能下一步走向成功;但是填服务器IP地址就出错:

只有本站会员才能查看附件,请 登录


只有本站会员才能查看附件,请 登录


期待大佬解惑。
#14
厨师王德榜2023-01-05 08:44
大概需要以下步骤,凭记忆 整理的 ,不精确的地方见谅:
打开Microsoft SQL Server 2012---配置工具。配置网络设置,将TCP/IP启用。
设置IPALL,清空动态端口,TCP端口设置为1433
.将TCP/IP属性中最后一个IP“活动”和“已启用” 改成了“是”
客户端协议:Shared Memory,  TCP/IP , Named Pipes  全部启用.
打开SSMS用windows登陆,将服务器属性->高级->访问级别设置启用。
SSMS 连接数据库后,在对象资源管理器中,点击右键选择 –>服务器配置–>RemoteAccessEnabled改为True。
SSMS 在对象资源管理器中,点击右键选择属性–>安全性–>服务器身份认证,选择SQL Server和Windows身份认证模式。
重启 SQL服务
以上步骤,均在服务器端 设置.
#15
mywisdom882023-01-05 12:44
以下是引用vfp2SQL2023在2023-1-1 14:27:18的发言:


各位大神2023年好!

        我遇到VFP+SQL连接“服务器名称能连上,服务器IP地址连不上”的情况:

操作系统:服务器、客户端都是win10
服务器数据库系统:SQL SERVER 2005,也装了VFPODBC.msi不知道有没有用。
客户端:vfp9.0

VFP连接SQL方式:
A: nCon=SQLSTRINGCONNECT("driver=SQL Server;Server=服务器名称;database=DB;Uid=sa;pwd=密码")
B: nCon=SQLSTRINGCONNECT("driver=SQL Server;Server=服务器ip地址;database=DB;Uid=sa;pwd=密码")
注:服务器ip地址通过花生壳获得映射IP地址,在客户端ping能连接成功。

一、服务器、客户端在相同wifi下连接(等同于在局域网内),A连上,B连不上。
二、服务器、客户端在不同wifi下连接(等同于在外网环境),A、B都连不上。抓狂ing

我的诉求:无论在局域网,还是在广域网,希望B都能连上。

截至2023.1.1,能从网上能搜到的如下办法都试了,
sql server 2005配置管理器-MSSQLSERVER协议-TCP/IP ip地址 127.0.0.1 启用1433端口,启用sql server browser,启用SQL SERVER代理。
但仍然不能解决问题。

请大佬赐教,谢谢!qq:1193878638。

要用IP地址,注册一个服务,实列,SQL2000,SQL2008测试过,SQL2005没测试过
要有下图这样的,前面显示是IP地址,不是名称的
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2023-1-5 12:48编辑过]

#16
vfp2SQL20232023-01-05 15:08
回复 12楼 nbwww

您好!我好像懂了,手机热点ip不是服务器ip。那么请问,现在就两台电脑,两台手机,我是不是缺一个路由器?
请大神继续指导,谢谢!
#17
vfp2SQL20232023-01-05 15:10
回复 15楼 mywisdom88

您好!
    sqlserver对象资源管理器-连接-数据库引擎这里,可以选择服务器名称,或者127.0.0.1,选后者也是可连的,跟您提供图片显示的一样。

谢谢!
#18
vfp2SQL20232023-01-05 15:12
回复 11楼 吹水佬
大佬,
   您好!
   telnet服务在哪打开? 我是小白,请教教我~
#19
vfp2SQL20232023-01-05 15:17
回复 14楼 厨师王德榜

王师傅:

    您好!感谢指导。您提示的那些条目,除了如下三点我找不到位置处理(可能是因为我这是SERVER2005,您那是SERVER2008吧),其他我都检查了。

1.打开SSMS用windows登陆,将服务器属性->高级->访问级别设置启用。
2.SSMS 连接数据库后,在对象资源管理器中,点击右键选择 –>服务器配置–>RemoteAccessEnabled改为True。
3.SSMS 在对象资源管理器中,点击右键选择属性–>安全性–>服务器身份认证,选择SQL Server和Windows身份认证模式.

谢谢!
#20
vfp2SQL20232023-01-06 08:58

系统叫我结贴去,好的,先这么着吧,多谢各位老师指点,谢谢~!
#21
esailor2023-10-24 10:06
不错,学习中!
1