วิธีการแก้ไขปัญหาการเชื่อมต่อใน SQL Server 2000

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 827422 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความนี้จะช่วยให้คุณแก้ไขปัญหาการเชื่อมต่อกับ Microsoft SQL Server 2000 บทความนี้ประกอบด้วยคำอธิบายของปัญหาการเชื่อมต่อที่พบโดยทั่วไปและขั้นตอนที่คุณสามารถใช้เพื่อช่วยแก้ไขปัญหาการเชื่อมต่อของคุณ
sql Server 2000 สนับสนุนการสื่อสารระหว่างอินสแตนซ์ของ SQL Server และโปรแกรมประยุกต์ไคลเอนต์หลายวิธี ถ้าแอพลิเคชันไคลเอนต์ของคุณและอินสแตนซ์ของ SQL Server ต้องอยู่บนคอมพิวเตอร์เครื่องเดียวกัน Microsoft Windows interprocess คอมโพเนนต์การสื่อสาร (IPC) เช่น pipes ที่มีชื่อเฉพาะหรือโพรโทคอลหน่วยความจำที่ใช้ร่วมกัน จะใช้ในการสื่อสารกัน อย่างไรก็ตาม เมื่อแอพลิเคชันไคลเอนต์และอินสแตนซ์ของ SQL Server ต้องอยู่บนคอมพิวเตอร์เครื่องอื่น เครือข่าย IPC เช่น TCP/IP หรือชื่อ pipes ถูกใช้ในการสื่อสาร

sql Server 2000 ใช้สุทธิไลบรา DLL การสื่อสารกับโพรโทคอเครือข่ายเฉพาะ คู่ที่ตรงกันของไลบรารีสุทธิต้องใช้ในการทำงานอยู่บนคอมพิวเตอร์ไคลเอนต์และคอมพิวเตอร์เซิร์ฟเวอร์เพื่อสนับสนุนโพรโทคอลเครือข่ายที่คุณต้องการใช้ ตัวอย่างเช่น ถ้าคุณต้องการเปิดใช้งานโปรแกรมประยุกต์ไคลเอ็นต์การสื่อสารกับอินสแตนซ์ SQL Server เฉพาะผ่าน TCP/IP ไคลเอนต์ไลบรา TCP/IP Sockets สุทธิรี (Dbnetlib.dll) ต้องถูกกำหนดค่าการเชื่อมต่อกับเซิร์ฟเวอร์บนคอมพิวเตอร์ไคลเอนต์ likewise เซิร์ฟเวอร์ TCP/IP Sockets ต้องฟัง (Ssnetlib.dll) สุทธิไลบรารีบนคอมพิวเตอร์เซิร์ฟเวอร์ ในสถานการณ์สมมตินี้ กองซ้อนของโพรโทคอล TCP/IP ต้องถูกติดตั้งบนคอมพิวเตอร์ไคลเอ็นต์และเครื่องเซิร์ฟเวอร์

หลังจากที่คุณติดตั้ง SQL Server 2000 คุณสามารถกำหนดค่าคุณสมบัติของไคลเอ็นต์ไลบรารีสุทธิ โดยใช้ยูทิลิตี้การเครือข่ายไคลเอ็นต์ คุณสามารถกำหนดค่าคุณสมบัติของเซิร์ฟเวอร์ไลบรารีสุทธิ โดยใช้เซิร์ฟเวอร์เครือข่าย Utility (Svrnetcn.exe) เซิร์ฟเวอร์ไลบรารีสุทธิมีการติดตั้งในระหว่างการติดตั้งเครื่องมือเซิร์ฟเวอร์ในการตั้งค่าเซิร์ฟเวอร์ SQL อย่างไรก็ตาม เซิร์ฟเวอร์ไลบรารีสุทธิบางอย่างอาจไม่ได้ใช้งานอยู่ โดยค่าเริ่มต้น SQL Server 2000 เปิดใช้งาน และ listens บน TCP/IP ชื่อ pipes และหน่วยความจำที่ใช้ร่วมกัน ดังนั้น สำหรับไคลเอ็นต์ในการเชื่อมต่อกับคอมพิวเตอร์เซิร์ฟเวอร์ ไคลเอ็นต์ต้องเชื่อมต่อ โดยใช้ไคลเอนต์ไลบราสุทธิรีที่ตรงกับเซิร์ฟเวอร์ไลบรารีสุทธิที่อยู่ในขณะนี้กำลังถูกใช้โดยอินสแตนซ์ของ SQL Server อย่างใดอย่างหนึ่ง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคอมโพเนนต์ในการสื่อสารของ sql server และไลบรารีสุทธิ ดูหัวข้อต่อไปนี้ใน SQL Server หนังสือออนไลน์:
  • คอมโพเนนต์การสื่อสาร
  • ไคลเอ็นต์และสุทธิเซิร์ฟเวอร์ไลบรารี
  • การจัดการไคลเอ็นต์

แก้ไขปัญหาการเชื่อมต่อ

โดยส่วนใหญ่ของปัญหาการเชื่อมต่อที่คุณอาจพบใน SQL Server 2000 เกิดขึ้นเนื่องจากปัญหาเกี่ยวกับ TCP/IP การรับรองความถูกต้องของ Windows หรือชุดของการรับรองความถูกต้อง TCP/IP และ Windows

สิ่งสำคัญก่อนที่คุณเริ่มการทำงานในการแก้ปัญหาการเชื่อมต่อใน SQL Server 2000 การตรวจสอบให้แน่ใจว่า จะมีเริ่มบริการ MSSQLServer บนคอมพิวเตอร์ที่ใช้ SQL Server

การตรวจสอบการตั้งค่า DNS ของคุณ

กระบวนการแก้ไขชื่อในชื่อระบบโดเมน (DNS) ถูกใช้ในการแก้ไขอยู่ IP ลงในชื่อของอินสแตนซ์ของ SQL Server ถ้ากระบวนการแก้ไขชื่อไม่สามารถทำงานอย่างถูกต้อง อินสแตนซ์ของ SQL Server ไม่สามารถเข้าถึง และคุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้อย่างน้อยหนึ่งอย่าง:
sql Server ไม่มีอยู่ หรือปฏิเสธการเข้าถึง
ข้อผิดพลาดของเครือข่ายทั่วไป
ไม่สามารถสร้าง SSPI บริบท
เมื่อต้องการตรวจสอบว่า กระบวนการแก้ไขชื่อแก้เซิร์ฟเวอร์ที่ถูกต้องหรือไม่ คุณสามารถ ping เซิร์ฟเวอร์ โดยใช้ชื่อเซิร์ฟเวอร์และ ip แอดเดรสของเซิร์ฟเวอร์ โดยให้ทำตามขั้นตอนต่อไปนี้:
  1. คลิกเริ่มการทำงานแล้ว คลิกเรียกใช้.
  2. ในการเรียกใช้กล่องโต้ตอบ ชนิดcmdในการOPENกล่อง แล้วคลิกตกลง.
  3. ที่พร้อมท์คำสั่ง ให้เรียกใช้คำสั่งต่อไปนี้::
    ping <Server Name>
    หมายเหตุอยู่ IP ที่ถูกส่งคืน
  4. หน้าจอพร้อมรับคำสั่ง เรียกใช้คำสั่งต่อไปนี้ (โดยที่ที่อยู่ ipis the IP address that you noted in step 3):
    ping –a <IP address>
Verify that the command resolves to the correct server name. If either of the specified commands are not successful, time out, or do not return the correct values, the DNS lookup is not working correctly or the problem occurs because of other networking or routing issues. To see your current DNS settings, run the following command at a command prompt:
ipconfig /all
For additional information about the ipconfig command, click the following article number to view the article in the Microsoft Knowledge Base:
223413ตัวเลือกสำหรับ Ipconfig.exe ใน Windows 2000


To work around this problem, add an entry for the server to the %systemroot%\system32\drivers\etc\hosts file on the client computer. You can also work around the problem by connecting to the server by using the Named Pipes Net-library.

Verify the enabled protocols and aliases

Connectivity problems may occur if the alias on the client computer is set incorrectly. You can view the aliases by using Client Network Utility. โดยให้ทำตามขั้นตอนต่อไปนี้:
  1. Start Client Network Utility. If the SQL Server client tools are installed on the computer that is running the client application, follow these steps to start Client Network Utility:
    1. คลิกเริ่มการทำงานจากนั้น ชี้ไปที่โปรแกรม.
    2. ชี้ไปที่Microsoft SQL Serverแล้ว คลิกClient Network Utility.
    If the SQL Server client tools are not installed on the client computer, follow these steps to start Client Network Utility:
    1. คลิกเริ่มการทำงานแล้ว คลิกเรียกใช้.
    2. ในการเรียกใช้กล่องโต้ตอบ ชนิดcliconfgในการOPENกล่อง แล้วคลิกตกลง.
  2. ในการSQL Server Client Network Utilityหน้าต่าง คลิกการทั่วไปtab, and then enable all the protocols that you want to use.

    หมายเหตุ:You must at least enable the TCP/IP protocol and the named pipes protocol.
  3. คลิกการนามแฝงtab, and then verify the aliases that are configured for the instance of SQL Server.
  4. Verify the properties of the aliases to make sure that the server name or IP address and the protocol are configured correctly.
You can create a new alias to test the connectivity by using the server name, the IP address, or even by using a different protocol.

หมายเหตุ:Earlier versions of Microsoft Data Access Components (MDAC) have a different user interface for Client Network Utility. Therefore, if you do not see the options that are listed in this article, install a later version of MDAC on the computer that is running the client application.

Verify that the instance of SQL Server is listening correctly

To verify that the instance of SQL Server is listening on named pipes, TCP/IP, or another protocol that you are using at the client application, open the current SQL Server error log file. The SQL Server error log file may contain entries that are similar to the following:
2003-11-06 09:49:36.17 server SQL server listening on TCP, Shared Memory, Named Pipes. 
2003-11-06 09:49:36.17 server SQL server listening on 192.168.1.5:1433, 127.0.0.1:1433.


If you analyze the entries in the SQL Server error log file, you can verify that the instance of SQL Server is listening on the correct IP address and on the correct port. By default, a default instance of SQL Server listens on the port 1433. You can also use Server Network Utility to verify the protocol settings for SQL Server and to change the properties in SQL Server, including the protocols that can connect to SQL Server and the ports that can be used. For more information about using Server Network Utility, see the "SQL Server Network Utility" topic in SQL Server Books Online.

ในบางครั้ง SQL Server 2000 อาจไม่ผูกกับพอร์ต 1433 หรืออื่น ๆ ระบุพอร์ต ปัญหานี้อาจเกิดขึ้น หากพอร์ตกำลังถูกใช้ โดยโปรแกรมประยุกต์อื่น หรือ ถ้าคุณกำลังพยายามเชื่อมต่อ โดยใช้ที่อยู่ IP ที่ไม่ถูกต้อง การเชื่อมต่อ TCP/IP กับ SQL Server อาจไม่สำเร็จ และคุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้ใน SQL Server ดังนั้นแฟ้มบันทึกข้อผิดพลาด:
เซิร์ฟเวอร์ 15:49:14.12 2001-11-14 ข้อมูล SuperSocket: ผูกล้มเหลวบนพอร์ต TCP 1433
สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
307197PRB: พอร์ต TCP\IP ใช้โดยโปรแกรมประยุกต์อื่น


ถ้าไม่คุณสามารถเชื่อมต่อกับอินสแตนซ์ของ SQL Server โดยการใช้การเชื่อมต่อ TCP/IP พยายามที่จะใช้โพรโทคอล pipes ที่มีชื่อหรือโพรโทคอลหน่วยความจำที่ใช้ร่วมกัน เรียกใช้คำสั่งต่อไปนี้ที่พร้อมท์รับคำสั่งเพื่อดูข้อมูลเกี่ยวกับพอร์ตที่ใช้งาน:
NETSTAT -an
คุณยังสามารถใช้ยูทิลิตีบรรทัดคำสั่ง Portqry เพื่อขอรับข้อมูลเพิ่มเติมเกี่ยวกับพอร์ตที่ใช้งาน

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมอรรถประโยชน์บรรทัดคำสั่ง Portqry คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
310099คำอธิบายเกี่ยวกับอรรถประโยชน์บรรทัดคำสั่ง Portqry.exe
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับจุดบกพร่องที่เป็นไปได้ที่เกี่ยวข้องกับซ็อกเก็ต TCP/IP คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
306865BUG: SQL Server อาจไม่ฟังบนซ็อกเก็ต TCP/IP เมื่อ TCP/IP เป็นโพรโทคอลเท่านั้น


หมายเหตุ:สำหรับอินสแตนซ์ที่มีชื่อของ SQL Server, SQL Server แบบไดนามิกกำหนดพอร์ต แล้ว listens พอร์ตที่กำหนด ดังนั้น เมื่อคุณเริ่มต้นอินสแตนซ์ที่มีชื่อของ SQL Server, SQL Server พยายามที่จะฟังพอร์ตที่ก่อนหน้านี้ถูกใช้งาน ถ้าเซิร์ฟเวอร์ SQL ไม่สามารถผูกกับพอร์ตนั้น อินสแตนซ์ที่มีชื่ออาจผูกเข้ากับพอร์ตต่าง ๆ แบบไดนามิก ในสถานการณ์เช่นนั้น ตรวจสอบให้แน่ใจว่า แอพลิเคชันไคลเอนต์ถูกตั้งค่าการตรวจสอบพอร์ตแบบไดนามิกเช่นกัน อีกวิธีหนึ่งคือ คุณสามารถระบุพอร์ตแบบคงที่สำหรับอินสแตนซ์ที่มีชื่อใน การผูก และฟังบน โดยใช้ยูทิลิตี้การเครือข่ายไคลเอ็นต์

สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
286303INF: ลักษณะการทำงานของ SQL Server 2000 ไลบรารีของเครือข่ายในระหว่างการตรวจหาพอร์ตแบบไดนามิก
823938วิธีการใช้การปันส่วนการพอร์ตแบบคงที่ และแบบไดนามิกใน SQL Server 2000

แก้ไขปัญหาของ MDAC

ปัญหาการเชื่อมต่ออาจเกิดขึ้นเนื่องจากปัญหาเกี่ยวกับ MDAC ของ ตัวอย่างเช่น ติดตั้งซอฟต์แวร์ที่อาจเขียนทับ MDAC แฟ้มบางแฟ้ม หรือเปลี่ยนแปลงสิทธิ์ที่คุณต้องมีการเข้าถึงแฟ้ม MDAC คุณสามารถเรียกใช้ตัวตรวจสอบคอมโพเนนต์ MDAC เพื่อตรวจสอบ MDAC ติดตั้งบนคอมพิวเตอร์ของคุณได้

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการตรวจสอบรุ่นของ MDAC คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
301202HOW TO: ตรวจสอบรุ่นของ MDAC

หมายเหตุ:ถ้าคุณกำลังเชื่อมต่อกับอินสแตนซ์ที่มีชื่อของ SQL Server ตรวจสอบให้แน่ใจว่า คุณกำลังเรียกใช้ MDAC 2.6 หรือในภายหลังบนคอมพิวเตอร์ของคุณ เวอร์ชันก่อนหน้าของ MDAC ไม่รู้จักอินสแตนซ์ที่มีชื่อของ SQL Server ดังนั้น เชื่อมต่อกับอินสแตนซ์ที่มีชื่ออาจไม่สำเร็จ

คุณสามารถใช้โปรแกรมอรรถประโยชน์ Odbcping.exe เพื่อตรวจสอบการเชื่อมต่อผ่าน ODBC ของเซิร์ฟเวอร์ SQL โปรแกรมควบคุมได้

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Odbcping.exe คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
138541HOW TO: Odbcping.exe เพื่อตรวจสอบการเชื่อมต่อ ODBC ของ sql server
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่า dsn ของ ODBC คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
289573PRB: การกำหนดค่า dsn กับไลบรา SQL Server สุทธิรี

นอกจากนี้คุณสามารถทดสอบการเชื่อมต่อกับอินสแตนซ์ของ SQL Server โดยใช้แฟ้ม.udl

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสร้างแฟ้ม.udl คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
244659SAMPLE: How to create a data link file with Windows 2000

Troubleshoot firewall issues

If firewall exists between the client computer and the computer that is running SQL Server, make sure that the ports that are required to communicate through the firewall are open.

For additional information about the ports that must be open to communicate through a firewall, click the following article numbers to view the articles in the Microsoft Knowledge Base:
287932INF: TCP ports needed for communication to SQL Server through a firewall
269882HOWTO: Use ADO to connect to a SQL Server that is behind a firewall


If you use the TCP/IP protocol to connect to the instance of SQL Server, make sure that you can use the Telnet program to connect to the port where SQL Server is listening. To use the Telnet program, run the following command at a command prompt:
Telnet <IP Address> <Port Number>
If the Telnet program is not successful and you receive an error message, resolve the error and then try to connect again.

หมายเหตุ:Because of issues that were caused by the Slammer virus, the User Datagram Protocol (UDP) port 1434 may be blocked on your firewall.

Troubleshoot authentication and security issues

Connections to SQL Server may not be successful because of authentication failures. If the authentication fails, you may receive one of the following error messages:
Login failed for user 'ชื่อผู้ใช้>'
Login failed for user 'NTAUTHORITY\ANONYMOUS LOGON'
Login failed for user 'null'
If you receive an error message because of an authentication failure and the error message does not mention a specific SQL Server login name, troubleshoot the problem with Windows authentication. You may receive the following error message because of problems with Windows authentication:
Cannot generate SSPI Context
The following problems may cause authentication and security issues:
  • Problems occur with NTLM authentication or with Kerberos authentication.
  • The domain controller cannot be contacted because of connectivity issues.
  • Problems occur with trust relationships across domains.
For more information about possible causes, see the event logs on the computer. To work around connectivity problems with Windows authentication, you can use SQL Server Authentication to connect to the instance of SQL Server.For additional information about how to troubleshoot and resolve the "Cannot Generate SSPI Context" error, click the following article number to view the article in the Microsoft Knowledge Base:
811889How to troubleshoot the "Cannot generate SSPI context" error message
If the connection is not successful when you use SQL Server Authentication, you receive the following error message:
Login failed for user 'ชื่อผู้ใช้>' . Not associated with a trusted connection

To troubleshoot this problem, follow these steps.

สิ่งสำคัญนี้ส่วน วิธี หรืองานประกอบด้วยขั้นตอนที่บอกวิธีการแก้ไขรีจิสทรี อย่างไรก็ตาม ปัญหาร้ายแรงอาจเกิดขึ้นหากคุณปรับเปลี่ยนรีจิสทรีไม่ถูกต้อง ดังนั้น โปรดตรวจสอบให้แน่ใจว่าคุณได้ทำตามขั้นตอนเหล่านี้อย่างระมัดระวัง สำหรับการป้องกันเพิ่มเติม ให้สำรองรีจิสทรีก่อนทำการปรับเปลี่ยน เพื่อที่คุณจะสามารถคืนค่ารีจิสทรีได้หากมีปัญหาเกิดขึ้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสำรองข้อมูลและคืนค่ารีจิสทรี โปรดคลิกที่หมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
322756วิธีการสำรองข้อมูลและคืนค่ารีจิสทรีใน Windows
  1. ตรวจสอบให้แน่ใจว่า มีการกำหนดค่าอินสแตนซ์ของ SQL Server ให้ใช้การรับรองความถูกต้องของ Windows และการพิสูจน์ตัวจริงของเซิร์ฟเวอร์ SQL เมื่อต้องการทำเช่นนั้น ตรวจสอบให้แน่ใจว่า รีจิสตรีคีย์ต่อไปนี้บนคอมพิวเตอร์ที่ใช้ SQL Server สำหรับอินสแตนซ์การเริ่มต้นของ SQL Server:
    HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer\LoginMode
    สำหรับอินสแตนซ์ที่มีชื่อของ SQL Server:
    Server\ HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL <instance name="">\MSSQLServer\LoginMode</instance>
    ตรวจสอบให้แน่ใจว่า มีกำหนดค่าคีย์รีจิสทรีต่อไปนี้:
    ยุบตารางนี้ขยายตารางนี้
    ชนิดของการรับรองความถูกต้องค่า
    ตรวจสอบ windows เท่านั้น1
    โหมดผสม(รับรองความถูกพิสูจน์ตัวจริงของเซิร์ฟเวอร์ SQL และ Windows ต้อง)2

    หมายเหตุ:ถ้าคุณทำการเปลี่ยนแปลงรีจิสทรี คุณต้องหยุดแล้ว รีสตาร์ทอินสแตนซ์ของ SQL Server สำหรับการเปลี่ยนแปลงมีผล
  2. กำลังพยายามเชื่อมต่อกับอินสแตนซ์ของ SQL Server โดยใช้บัญชีของ Windows ที่แตกต่างกันหรือบัญชีการเข้าสู่ระบบของเซิร์ฟเวอร์ SQL ซึ่งจะช่วยตรวจสอบว่า การเชื่อมต่อไม่สำเร็จเนื่องจากปัญหาเกี่ยวกับบัญชีผู้ใช้ล็อกอินเฉพาะการต่อไปนี้ ตัวอย่างเช่น รหัสผ่านของบัญชีผู้ใช้เข้าสู่ระบบอาจมีการเปลี่ยนแปลง
  3. กำลังพยายามเชื่อมต่อกับอินสแตนซ์ของ SQL Server โดยใช้โปรโตคอที่แตกต่างกัน ตัวอย่างเช่น การเชื่อมต่อที่ใช้โพรโทคอล TCP/IP ที่ มีการรับรองความถูกต้องของ Windows อาจไม่เสร็จเรียบร้อยแล้ว แต่การเชื่อมต่อที่ใช้โพรโทคอล pipes ที่มีชื่อที่ มีการรับรองความถูกต้องของ Windows อาจไม่สำเร็จ
ถ้าคุณกำลังใช้ใบรับรอง คุณอาจได้รับการ Secure Sockets Layer (SSL) ข้อความแสดงข้อผิดพลาดด้านความปลอดภัยเมื่อคุณพยายามเชื่อมต่อกับอินสแตนซ์ของ SQL Server ได้หากต้องการทราบข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base::
316898HOW TO: เปิดใช้งานการเข้ารหัส SSL สำหรับ SQL Server 2000 กับคอนโซลการจัดการของ Microsoft
322144การแก้ไข: SECDoClientHandShake การไม่สามารถเชื่อมต่อกับ SQL Server


แก้ไขปัญหาบนซ็อกเก็ต TCP/IP

เมื่อคุณใช้โปรแกรมควบคุม ODBC เซิร์ฟเวอร์ SQL ผู้ที่ Microsoft OLE DB ให้สำหรับ SQL Server หรือ System.Data.SqlClient การจัดการผู้ให้บริการ คุณสามารถยกเลิกการเชื่อมต่อร่วมกันโดย ใช้การเขียนโปรแกรมของแอพลิเคชันที่เหมาะสม interfaces (APIs) เมื่อคุณปิดใช้งานการเชื่อมต่อร่วมกัน และโปรแกรมประยุกต์ของคุณเปิด และปิดการเชื่อมต่อบ่อย ปัญหาในไลบรารีเครือข่ายพื้นฐานของ SQL Server อาจเพิ่มขึ้น ในบางครั้ง เว็บเซิร์ฟเวอร์และไดรเวอร์ JDBC อาจจะพยายามเชื่อมต่อกับอินสแตนซ์ของ SQL Server ดังนั้น เพิ่มขึ้นในการร้องขอการเชื่อมต่อกับ SQL Server อาจจะมากกว่า SQL Server สามารถจัดการ ซึ่งอาจ stress ซ็อกเก็ต TCP/IP และคุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้ในแฟ้มบันทึกข้อผิดพลาด SQL Server:
เซิร์ฟเวอร์ 20:46:21.11 2003-08-07 ข้อผิดพลาด: ความรุนแรง 17832 : 20 สถานะ: 6
เซิร์ฟเวอร์ 20:46:21.11 2003-08-07 เชื่อมต่อเปิดแต่ packet(s) เข้าสู่ระบบที่ไม่ถูกต้องที่ส่ง ปิดการเชื่อมต่อ


หากต้องการทราบข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base::
154628INF: SQL ล็อก 17832 กับหลายการร้องขอการเชื่อมต่อ TCP\IP
328476การตั้งค่า TCP/IP สำหรับโปรแกรมควบคุมของ sql server เมื่อร่วมกันถูกปิดใช้งาน


หมายเหตุ:คุณอาจสังเกตเห็นปัญหาบนซ็อกเก็ต TCP/IP ไม่ถ้าคุณกำลังเรียกใช้ SQL Server 2000 SP3 หรือ SP3a 2000 Server SQL ได้เนื่องจากมีข้อจำกัดของจำนวนที่ใช้ในการส่งข้อมูลการเข้าสู่ระบบถูกเพิ่ม เกิดข้อผิดพลาด 17832 เมื่อคุณใช้โปรแกรมควบคุมของบริษัทอื่นในการเชื่อมต่อกับอินสแตนซ์ของ SQL Server เมื่อต้องการแก้ไขปัญหานี้ ติดต่อผู้จำหน่ายบริษัทอื่น และทำการขอรับโปรแกรมควบคุมที่ได้รับการทดสอบการทำงานกับ SP3 2000 เซิร์ฟเวอร์ SQL และ SP3a 2000 เซิร์ฟเวอร์ SQL

ดูว่าอินสแตนซ์ของ SQL Server จะเริ่มการทำงานในโหมดผู้ใช้เดี่ยว

หากอินสแตนซ์ของ SQL Server ที่คุณกำลังพยายามเชื่อมต่อไปจะเริ่มการทำงานในโหมดผู้ใช้เดี่ยว เดียวเท่านั้นสามารถจะสร้างการเชื่อมต่อกับ SQL Server ถ้าคุณมีซอฟต์แวร์ที่ทำงานบนคอมพิวเตอร์ของคุณโดยอัตโนมัติได้เชื่อมต่อกับ SQL Server ซอฟต์แวร์สามารถใช้การเชื่อมต่อเฉพาะได้อย่างง่ายดาย ตัวอย่างเช่น ซอฟต์แวร์ต่อไปนี้สามารถเชื่อมต่อโดยอัตโนมัติเข้ากับอินสแตนซ์ของ SQL Server:
  • บริษัทตัวแทนของเซิร์ฟเวอร์ sql
  • ซอฟต์แวร์การสำรองข้อมูลของบริษัทอื่น
  • ซอฟต์แวร์ตรวจสอบของบริษัทอื่น
  • ซอฟต์แวร์ไวรัสของบริษัทอื่น
  • บริการข้อมูลทางอินเทอร์เน็ตของ Microsoft (IIS)
  • โปรแกรมจัดการไซต์องค์กรเซิร์ฟเวอร์ sql
แอพลิเคชันไคลเอนต์ที่กำลังพยายามเชื่อมต่อกับอินสแตนซ์ของ SQL Server ได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
SQL Server ไม่มีอยู่ หรือเข้าถึงถูกปฏิเสธ
ข้อผิดพลาดนี้มักเกิดขึ้นในระหว่างการติดตั้งของคลัสเตอร์ SQL และการตั้งค่าชุดบริการเมื่อกระบวนการเซ็ตอัพเริ่มต้นอินสแตนซ์ของ SQL Server ในโหมดผู้ใช้เดียว The specified applications may automatically connect to the instance of SQL Server using the only available connection, and setup is not successful.

To determine if the instance of SQL Server has been started in single-user mode, check to see if the SQL Server error log file has an entry that is similar to following:
2003-07-31 11:26:43.79 spid3 Warning ******************
2003-07-31 11:26:43.80 spid3 SQL Server started in single user mode. Updates allowed to system catalogs.

Verify named pipes connectivity to SQL Server

If you cannot connect to the instance of SQL Server by using named pipes, make sure that the instance of SQL Server is configured to accept named pipes connections.For additional information about the procedure for testing named pipes, click the following article number to view the article in the Microsoft Knowledge Base:
68941INF: Procedure for testing named pipes

แก้ไขการเชื่อมต่อหมดเวลานั้นในระหว่างกระบวนการกู้คืน

Every time that you start an instance of SQL Server, SQL Server recovers each database. During this recovery process, SQL Server rolls back the transactions that are not committed. SQL Server also rolls forward the transactions that are committed and the changes that were not written to the hard disk when the instance of SQL Server was stopped. When the recovery process is complete, SQL Server logs the following message in the SQL Server error log file:
Recovery Complete
During the recovery process, SQL Server may not accept connections. Clients that try to connect to the instance of SQL Server during that time may receive an error message that is similar to the following:
หมดเวลาหมดอายุ
The SQL Server Agent service may not start because it waits for SQL Server to recover the databases. Therefore, when you receive the following message in the SQL Server error log file, the connections will no longer fail with a timeout error:
Recovery Complete
If the recovery process takes a long time, you may have to additionally troubleshoot the recovery process.

ทดสอบวิธีต่าง ๆ ในการเชื่อมต่อกับอินสแตนซ์ของ SQL Server

If you experience connectivity problems when you connect to the instance of SQL Server, you can use one or more of the following methods to work around the connectivity problem.
  • Test the connectivity to the instance of SQL Server by using both SQL Server Authentication and Windows authentication.
  • Test the connectivity to the instance of SQL Server from other data sources, such as an ODBC DSN, a .udl file, SQL Query Analyzer, SQL Server Enterprise Manager, the isql utility, or the osql utility.
  • Test the connectivity to the instance of SQL Server by using different protocols. You can specify different protocols by creating a new alias for the instance of SQL Server using that protocol. You can also specify the protocol in your connection string by adding tcp:, np:, lpc:, or rpc: to the beginning of the name of the instance of SQL Server. For example, if TCP/IP connections are not successful, named pipes connections succeed.
  • ทดสอบการเชื่อมต่อ โดยใช้บัญชีผู้ใช้เข้าสู่ระบบที่แตกต่างกันเพื่อช่วยคุณในการดูว่า ปัญหาเกี่ยวข้องกับบัญชีผู้ใช้ล็อกอินเฉพาะ
  • มีความพยายามเพิ่มรายการที่ตรงกับอยู่ IP ของคอมพิวเตอร์ที่รันอินสแตนซ์ของ SQL Server ไปยังแฟ้ม %systemroot%\system32\drivers\etc\hosts
  • ให้ลองเชื่อมต่อกับอินสแตนซ์ของ SQL Server จากคอมพิวเตอร์ที่ใช้ SQL Server และ จากไคลเอนต์
  • ถ้า คุณกำลังเชื่อมต่อจากคอมพิวเตอร์ที่ใช้ SQL Server คุณสามารถระบุ "ได้" หรือ "(local)" (โดยไม่ใส่เครื่องหมายอัญประกาศ) แทนของเซิร์ฟเวอร์ชื่อ และการเชื่อมต่อแล้ว ได้
  • ลองเชื่อมต่อกับอินสแตนซ์ของ SQL Server ด้วยการใช้อยู่ IP แทนการใช้ชื่อเซิร์ฟเวอร์
  • ความพยายามที่ระบุพอร์ตเฉพาะที่อินสแตนซ์ของ SQL Server จะฟังบน ด้วยการสร้างนามแฝง หรือ โดยการเพิ่มหมายเลขพอร์ตที่เชื่อมต่อ string (MyServer\MyInstance, 1433 ตัวอย่าง)

ข้อมูลการตรวจสอบเครือข่ายของการจับภาพ

ถ้ามีการแก้ปัญหาการเชื่อมต่อไม่ได้ตามขั้นตอนที่กล่าวถึงในส่วน"ทดสอบวิธีต่าง ๆ ในการเชื่อมต่อกับอินสแตนซ์ของ SQL Server 2000" ใช้โปรแกรมอรรถประโยชน์การตรวจสอบเครือข่ายเพื่อจับภาพการสืบเครือข่ายสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสืบค้นกลับของเครือข่าย คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
148942วิธีการจับภาพการรับส่งข้อมูลเครือข่าย ด้วยการตรวจสอบเครือข่าย

294818คำถามที่ถามบ่อยเกี่ยวกับการตรวจสอบเครือข่าย

169292พื้นฐานของการอ่านสืบ TCP/IP

102908วิธีการแก้ไขปัญหาการเชื่อมต่อ TCP/IP ด้วย Windows 2000 หรือ Windows NT


การขอรับข้อมูลเพิ่มเติม คุณอาจต้องใช้สืบ Profiler SQL คุณยังสามารถใช้การวินิจฉัยเครือข่ายเครื่องมือสำหรับคอมพิวเตอร์ไม่ใช่ clustered ที่รัน SQL Server สำหรับการสืบค้นกลับของเครือข่ายได้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้เครื่องมือการวินิจฉัยเครือข่าย คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
321708HOW TO: ใช้เครื่องมือการวินิจฉัยเครือข่าย (Netdiag.exe) ใน Windows 2000

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเชื่อมต่อปัญหาต่าง ๆ ที่เกี่ยวข้องกับ SQL Server คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
812817เซิร์ฟเวอร์ Microsoft SQL เว็บคาสต์สนับสนุน: 2000: การแก้ไขปัญหาการเชื่อมต่อ
319930HOW TO: การเชื่อมต่อกับโปรแกรมบนเดสก์ท็อปของ Microsoft
257434INF: ไลบรารีของเครือข่ายใน DSN ที่มีอยู่แทนที่ ด้วยไลบรารีเครือข่ายใน DSN ใหม่ไปยังชื่อเซิร์ฟเวอร์ SQL ที่เหมือนกัน
306985ข้อผิดพลาด rpc เมื่อเชื่อมต่อเซิร์ฟเวอร์เสมือนคลัสเตอร์ มี pipes ที่มีชื่อ
313062HOW TO: เชื่อมต่อกับฐานข้อมูล โดยใช้หน้าเซิร์ฟเวอร์ที่ใช้งานอยู่ใน Windows 2000
313295HOW TO: ใช้พารามิเตอร์ชื่อเซิร์ฟเวอร์ในสายอักขระการเชื่อมต่อที่ระบุในไลบรารีเครือข่ายของไคลเอ็นต์
320728HOW TO: แก้ไขข้อผิดพลาด "การจำกัดการเชื่อมต่อสูงสุดแล้ว" ข้อความ
328306INF: Potential causes of the "SQL Server does not exist or access denied" error message
247931INF: Authentication methods for connections to SQL Server in Active Server Pages
169377How to access SQL Server in Active Server Pages
328383INF: SQL Server clients may change protocols when they try to connect
238949HOWTO: Set the SQL Server network library in an ADO connection string
270126PRB: How to manage client connectivity to both SQL Server 2000 virtual servers after an active/active cluster 7.0 upgrade
316779PRB: Clients with Force Protocol Encryption set on may fail to connect with an IP address
216643INF: ODBC/OLEDB connect options not seen when tracing connections to SQL Server 7.0
265808INF: How to connect to an SQL Server 2000 named instance with the previous version's client tools
191572INFO: Connection pool management by ADO objects called from ASP
313173Sample connection pool manager for use with Microsoft SQL Server 2000 driver for JDBC
237844HOWTO: Enable ODBC connection pooling in a Visual Basic ADO application
259569PRB: Installing third-party product breaks Windows 2000 MDAC registry settings

คุณสมบัติ

หมายเลขบทความ (Article ID): 827422 - รีวิวครั้งสุดท้าย: 14 มกราคม 2554 - Revision: 3.0
ใช้กับ
  • Microsoft SQL Server 2000 Standard Edition
Keywords: 
kbhowto kbsqlclient kbdll kbclientserver kbclient kbdns kberrmsg kbtshoot kbregistry kbmt KB827422 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:827422

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com