莫相离 发表于 2015-1-16 22:24:13

MSSQL网页设计SQL Server毗连失利毛病妨碍的剖析与排...

支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统server|毛病比来做一个项目(Asp.net+SqlServer2000),在本来开辟的呆板上运转没有任何成绩.但当我在别的一台呆板上调试程序(本机调试)的时分,总呈现“SQLServer不存在或会见被回绝”。信任在任何一个搜刮网站输出如许的检索词,必定会取得n多的页面。
总结起来的关于SQLServer毗连中此类四个最多见毛病毛病办理计划以下:
一."SQLServer不存在或会见被回绝"
这个是最庞大的,毛病产生的缘故原由对照多,必要反省的方面也对照多.
一样平常说来,有以下几种大概性:
1,SQLServer称号或IP地点拼写有误
2,服务器端收集设置有误
3,客户端收集设置有误
要办理这个成绩,我们一样平常要遵守以下的步骤来一步步找出招致毛病的缘故原由.
=============起首,反省收集物理毗连=============
ping<服务器IP地点/服务器称号>
假如ping<服务器IP地点>不乐成,申明物理毗连有成绩,这时候候要反省硬件设备,如网卡,HUB,路由器等.
另有一种多是因为客户端和服务器之间安装有防火墙软件酿成的,好比ISAServer.防火墙软件大概会屏障对ping,telnet等的呼应
因而在反省毗连成绩的时分,我们要先把防火墙软件临时封闭,大概翻开一切被关闭的端口.
假如ping<服务器IP地点>乐成而,ping<服务器称号>失利
则申明名字剖析有成绩,这时候候要反省DNS服务是不是一般.
偶然候客户端和服务器不在统一个局域网内里,这时候候极可能没法间接利用服务器称号来标识该服务器,这时候候我们可使用HOSTS文件来举行名字剖析,
详细的办法是:
1.利用记事本翻开HOSTS文件(一样平常情形下位于C:WINNTsystem32driversetc).
增加一条IP地点与服务器称号的对应纪录,如:
172.168.10.24myserver
2.或在SQLServer的客户端收集有用工具内里举行设置,前面会有具体申明.

=============其次,利用telnet命令反省SQLServer服务器事情形态=============
telnet<服务器IP地点>1433
假如命令实行乐成,能够看到屏幕一闪以后光标在左上角一直明灭,这申明SQLServer服务器事情一般,而且正在监听1433端口的TCP/IP毗连
假如命令前往"没法翻开毗连"的毛病信息,则申明服务器端没有启动SQLServer服务,
也大概服务器端没启用TCP/IP协定,大概服务器端没有在SQLServer默许的端口1433上监听.

=============接着,我们要到服务器上反省服务器真个收集设置,反省是不是启用了定名管道.是不是启用了TCP/IP协定等等=============
能够使用SQLServer自带的服务器收集利用工具来举行反省.
点击:程序--MicrosoftSQLServer--服务器收集利用工具
翻开该工具后,在"惯例"中能够看到服务器启用了哪些协定.
一样平常而言,我们启用定名管道和TCP/IP协定.
点中TCP/IP协定,选择"属性",我们能够来反省SQKServer服务默许端口的设置
一样平常而言,我们利用SQLServer默许的1433端口.假如选中"埋没服务器",则意味着客户端没法经由过程列举服务器来看到这台服务器,起到了回护的感化,但不影响毗连.

=============接上去我们要到客户端反省客户真个收集设置=============
我们一样能够使用SQLServer自带的客户端收集利用工具来举行反省,
所分歧的是此次是在客户端来运转这个工具.
点击:程序--MicrosoftSQLServer--客户端收集利用工具
翻开该工具后,在"惯例"项中,能够看到客户端启用了哪些协定.
一样平常而言,我们一样必要启用定名管道和TCP/IP协定.
点击TCP/IP协定,选择"属性",能够反省客户端默许毗连端口的设置,该端口必需与服务器分歧.
单击"别号"选项卡,还能够为服务器设置别号.服务器的别号是用来毗连的称号,
毗连参数中的服务器是真实的服务器称号,二者能够不异或分歧.别号的设置与利用HOSTS文件有类似的地方.

经由过程以上几个方面的反省,基础上能够扫除第一种毛病.

二."没法毗连到服务器,用户xxx上岸失利"
该毛病发生的缘故原由是因为SQLServer利用了"仅Windows"的身份考证体例,
因而用户没法利用SQLServer的登录帐户(如sa)举行毗连.办理办法以下所示:
1.在服务器端利用企业办理器,而且选择"利用Windows身份考证"毗连上SQLServer
2.睁开"SQLServer组",鼠标右键点击SQLServer服务器的称号,选择"属性",再选择"平安性"选项卡
3.在"身份考证"下,选择"SQLServer和Windows".
4.从头启动SQLServer服务.
在以上办理办法中,假如在第1步中利用"利用Windows身份考证"毗连SQLServer失利,
那就经由过程修正注册表来办理此成绩:
1.点击"入手下手"-"运转",输出regedit,回车进进注册表编纂器
2.顺次睁开注册表项,扫瞄到以下注册表键:

3.在屏幕右方找到称号"LoginMode",双击编纂双字节值
4.将原值从1改成2,点击"断定"
5.封闭注册表编纂器
6.从头启动SQLServer服务.
此时,用户能够乐成地利用sa在企业办理器中新建SQLServer注册,
可是仍旧没法利用Windows身份考证形式来毗连SQLServer.
这是由于在SQLServer中有两个缺省的登录帐户:
BUILTINAdministrators
<呆板名>Administrator被删除.
要恢复这两个帐户,可使用以下的办法:
1.翻开企业办理器,睁开服务器组,然后睁开服务器
2.睁开"平安性",右击"登录",然后单击"新建登录"
3.在"称号"框中,输出BUILTINAdministrators
4.在"服务器脚色"选项卡中,选择"SystemAdministrators"
5.点击"断定"加入
6.利用一样办法增加<呆板名>Administrator登录.
申明:
以下注册表键:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServerLoginMode
的值决意了SQLServer将接纳何种身份考证形式.
1.暗示利用"Windows身份考证"形式
2.暗示利用夹杂形式(Windows身份考证和SQLServer身份考证).

三.提醒毗连超时
假如碰到第三个毛病,一样平常而言暗示客户端已找到了这台服务器,而且能够举行毗连,
不外是因为毗连的工夫年夜于同意的工夫而招致堕落.
这类情形一样平常会产生在当用户在Internet上运转企业办理器来注册别的一台一样在Internet上的服务器,
而且是慢速毗连时,有大概会招致以上的超时毛病.有些情形下,因为局域网的收集成绩,也会招致如许的毛病.
要办理如许的毛病,能够修正客户真个毗连超时设置.
默许情形下,经由过程企业办理器注册别的一台SQLServer的超时设置是4秒,
而查询剖析器是15秒(这也是为何在企业办理器里产生毛病的大概性对照年夜的缘故原由).
详细步骤为:
企业办理器中的设置:
1.在企业办理器中,选择菜单上的"工具",再选择"选项"
2.在弹出的"SQLServer企业办理器属性"窗口中,点击"初级"选项卡
3.在"毗连设置"下的"登录超时(秒)"右侧的框中输出一个对照年夜的数字,如20.
查询剖析器中的设置:
工具--选项--毗连--将登录超时设置为一个较年夜的数字

四.年夜部分机都用Tcp/ip才干乐成,有次我发明用NamedPipes才能够?
这是由于在WINDOWS2000今后的操纵体系中,MS为办理SQLSERVER的平安成绩将TCP/IP设置
为SQLSERVER的默许毗连协定,你能够在CLIENTNETWORKUTILITY中看到TCP/IP和NAMEPIPE
的按次。
你也能够在:

"ProtocolOrder"=hex(7):74,00,63,00,70,00,00,00,00,00
看到默许的协定。
2.怎样在程序中变动NamedPipes,Tcp/ip,其sql语句怎样写?
你能够在下面提到的注册表的地位修正:
CLIENT端:

"ProtocolOrder"=hex(7):74,00,63,00,70,00,00,00,00,00
SERVER端:

"ProtocolOrder"=hex(7):74,00,63,00,70,00,00,00,00,00
我的成绩应当属于第一类,遗憾的是我依照下面说的办法都不克不及办理这个成绩。我利用:telnet<服务器IP地点>1433显现不克不及准确毗连。依照说的办法也不克不及办理这个成绩。有网友说呈现1433端口不克不及毗连的由于是SqlServer2000没有打补钉的原因,但我打过sp4后仍旧不克不及准确毗连1433端口。
我在web.config里的设置为:
<configuration>
<appSettings>
<!--"datasource=SASANK;initialcatalog=CODER;persistsecurityinfo=False;usersize=4096"-->
<addkey="ConnectionString"value="server=localhost;Trusted_Connection=false;user/>

</appSettings>
<system.web>
找了很久缘故原由,都不可。
厥后试着将数据库毗连项改成:
<addkey="ConnectionString"value="server=192.168.254.60;Trusted_Connection=false;user/>也就是把个中的Server改成我的呆板在局域网中的IP地点(注重我是本机调试,我把server改成呆板名也不可),毗连运转,居然乐成了!成绩办理了,但我仍是不太分明是甚么缘故原由?为何我利用telnet命令翻开1433端口不乐成?但愿有谁可以注释下!

EXAMPLE存储引擎是一个不做任何事情的存根引擎。它的目的是作为MySQL源代码中的一个例子,用来演示如何开始编写一个新存储引擎。同样,它的主要兴趣是对开发者。EXAMPLE存储引擎不支持编索引。

飘飘悠悠 发表于 2015-1-19 10:55:23

入门没那么困难,精通没那么容易

精灵巫婆 发表于 2015-1-28 06:09:22

总感觉自己还是不会SQL

海妖 发表于 2015-2-5 19:14:10

至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。

谁可相欹 发表于 2015-2-13 07:35:44

外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。

只想知道 发表于 2015-3-3 19:14:01

原来公司用过MYSQL自己也只是建个表写个SQL

小女巫 发表于 2015-3-11 12:52:52

在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。

简单生活 发表于 2015-3-18 20:05:43

入门没那么困难,精通没那么容易

蒙在股里 发表于 2015-3-26 15:04:43

这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?
页: [1]
查看完整版本: MSSQL网页设计SQL Server毗连失利毛病妨碍的剖析与排...