2012-02-28 34 views
6

Sự cố rất bí ẩn sắp xảy ra: PKhông thể truy cập phiên bản SQL Server 2008 R2 từ xa

Tôi có máy chủ được định cấu hình bằng IP tĩnh. Tôi đã cài đặt SQL Server 2008 R2 với phiên bản bổ sung (ITAPP). Bây giờ Khi tôi sử dụng địa chỉ IP để truy cập vào những điều SQL Server sau đây sẽ xảy ra:

Khách hàng Máy:

sqlcmd -S XXX.XXX.XXX.XXX -U sa -P mypass 

kết nối thành công ....

Nhưng khi tôi sử dụng:

sqlcmd -S XXX.XXX.XXX.XXX\ITAPP -U sa -P mypass 

HResult 0xFFFFFFFF, Level 16, State 1 SQL Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].

Sqlcmd: Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server.

When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections..

Sqlcmd: Error: Microsoft SQL Native Client : Login timeout expired.

Ngay cả trên cùng một máy (nơi máy chủ SQL được cài đặt) bằng cách sử dụng SQL Server Management Studi o. Tôi đã tắt tường lửa của mình trên cả hai máy, thậm chí cho phép tất cả các giao thức cho ITAPP (Bộ nhớ chia sẻ, Đặt tên đường ống, TCP/IP), cũng đặt Allow Remote connection thành true.

Một điều nữa khi tôi sử dụng 127.0.0.1\SQLITRAX để kết nối trên máy chủ, máy chủ sẽ kết nối ngay lập tức.

Xin hãy giúp tôi ra khỏi mớ hỗn độn này :)

+1

Tại sao thông báo lỗi của bạn nói SQL 2005 nếu bạn đang sử dụng 2008? – Simon

+0

máy chủ sql 2008 – Wasif

Trả lời

16

có lẽ đó là bởi vì đó là một ví dụ đặt tên trên máy chủ từ xa.
Ví dụ được đặt tên không sử dụng tiêu chuẩn SQL Server Tcp-port 1433, chỉ cá thể mặc định (chưa đặt tên) sử dụng cổng 1433.
Bất kỳ trường hợp "có tên" nào khác chỉ đơn giản là lắng nghe trên một cổng khác.
Vì vậy, bạn nên kiểm tra cấu hình SQL-Server, trên đó cổng TCP đang lắng nghe, và sau đó yêu cầu khách hàng kết nối với cổng này.
Nói rằng ví dụ đặt tên của bạn được lắng nghe cổng 12345, sau đó khách hàng nên kết nối bằng cách sử dụng lệnh sau

sqlcmd -S XXX.XXX.XXX.XXX,12345 -U sa -P mypass 

khi bạn chỉ định các cổng TCP, sau đó bạn không cần tên của ví dụ.
Trong sự hiểu biết của tôi tên của cá thể là một cách cho các dịch vụ SQL Server để tìm cổng TCP mà trường hợp được đặt tên này đang lắng nghe.
Nhưng để làm việc này khách hàng của bạn cần để có thể truy cập vào các dịch vụ khác mà giải quyết cái tên thể hiện của SQL Server (có thể đó là Sql server duyệt Agent/SQL Server, nhưng tôi không chắc chắn)

Cập nhật
Đây là ảnh chụp màn hình hiển thị vị trí đặt cổng TPC cho phiên bản SQL Server có tên. How to check the TPC listening port of a SQL Server named instance

vì vậy, cổng TCP nào là phiên bản SQL Server được đặt tên của bạn?

+1

Tôi vừa cập nhật phản hồi với ảnh chụp màn hình, đây là nơi để tìm cổng TCP mà máy chủ của bạn đang nghe theo số – Max

+0

Cảm ơn MAX cho Trợ giúp của bạn – Wasif

+0

Cảm ơn bạn đã gợi ý về cổng. Về cơ bản nó gần như đã giải quyết được vấn đề của tôi. Điều duy nhất tôi cần làm là tạo ra một quy tắc gửi đến cho cổng cụ thể này trong thuật sĩ Windows Firewall và Advanced Security. – MacGyver

3

Các dịch vụ SQL Server Browser cần có thể truy cập để có thể kết nối với các trường hợp được đặt tên.

Xem this article để biết thêm về những gì nó làm và các cổng mở trên tường lửa của bạn

technet article này cung cấp một kịch bản tiện dụng để mở ra tất cả các cổng cần thiết

+0

chúng tôi đã làm điều đó – Wasif

+0

cũng kiểm tra máy quét vi-rút? –

Các vấn đề liên quan