vc连接SQLServer2000失败!
//打开连接
m_pConnection->Open(strConnect,"","",adModeUnknown);
为什么用127.0.0.1连接不成功了,用(local)可以连接成功 展开
这个问题好像昨天也问过,当时没有时间写太多文字。
(local)是本地服务直连模式,它绕过了很多MSSQL的外部连接模式,所以只要本地SQL实例为默认,那么就可以连接成功,不需要额外的设置,一般初学者做本机数据库程序推荐使用这个。
MS SQL Server目前常用的连接方式有3个:Shared Memory、TCP/IP和Named Pipe,这三种连接方式有不同的连接模式和连接需求,这里不多说了,先说你这个。
127.0.0.1是本机默认IP地址。通过这个连接本机SQLSERVER,是属于TCP/IP模式,一般是可以连接成功的,但这个连接成功需要很多前提条件:
最外围,本机防火墙要做信任和SQL端口开放,如果测试,可以先关闭本机防火墙。
MSSQL默认端口为1433,如果修改了端口,那么TCP/IP方式连接需要加上定义端口号,类似于:”192.168.0.1,1434“
服务器的安全策略中,127.0.0.1是可以被禁止的,如果这个IP被禁止(很多服务器都会禁止这个,因为不安全),那么肯定没法连接成功
MSSQL的TCP/IP连接模式也是可以被禁止或者定制的(不少服务器设置都只保留一个连接方式,禁用另外两个),这种情况127.0.0.1也无法连接
综上,127.0.0.1连接并不推荐被使用,如果正式配置长期使用的SQL服务器,可以使用本机名(实例名)来连接,临时或者学习用,推荐local连接。
谢谢你的回答,我把防火墙关了,我要连服务器要用ip,能ping通服务器,是不是把127.0.0.1改成服务器的IP,端口就可以操作服务器的sql数据库了?
可以,IP+端口没问题(如果实例不是默认实例,要加上实例名)