Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hướng dẫn] Giải quyết Lỗi không thể kết nối trong SQL Server
#1
Information 
Giải quyết vấn đề lỗi không thể kết nối trong SQL ServerVấn đề:
Thỉnh thoảng bạn gặp những báo lỗi sau về kết nối:
ERROR: (provider: Named Pipes Provider, error: 40 – Could not open a connection toSQL Server) (Microsoft SQL Server, Errorhappy An error has occurred while establishing a connection to the server. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 5)

Hoặc:

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. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 1326)

Hoặc:

SQL Server) (Microsoft SQL Server, Errorhappy An error has occurred while establishing a connection to the server. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 5)


Những lỗi này xuất hiện với cả hai phương thức kết nối Name Pipe và TCP/IP. Trong bài này chúng ta sẽ xem xét tất cả các vấn đề dẫn đến các lỗi này và cách giải quyết.
Giải pháp:
Có một số lý do dẫn đến các lỗi này, và bạn cần theo các bước sau để kiểm tra một cách tòan diện vấn đề kết nối:


Bước 1:
Phải chắc chắn rằng bạn có thể Ping được đến tên máy Server vật lý, nơi SQL server được cài đặt. Nếu không, bạn hãy thử kết nối tới SQL Server bằng cách sử dụng địa chỉ IP (địa chỉ cho bản SQL mặc định (Default Instance)), hoặc địa chỉ IP\Instance Name (Cho bản SQL cài theo tùy chọn Instance Name).

[Hình: image1.jpg]

Nếu bạn kết nối được đến SQL Server bằng IP thành công, nhưng bạn lại muốn sử dụng một tên server tham chiếu thay cho địa chỉ IP trên, bạn thêm vào địa chỉ IP và tên tham chiếu cho SQL Server vào file host bằng cách chạy đoạn lệnh này vào cửa sổ RUN: %SystemRoot%\system32\drivers\etc\, mở file host bằng Note pad và thêm vào theo cú pháp IP Name theo hình sau:

[Hình: image2.JPG]

Theo hình trên, chúng ta đã thêm vào địa chỉ của máy cài đặt SQL Server là 74.200.243.253 và tên tham chiếu cho nó là SQLDBPool, sau khi lưu file này lại chúng ta có thể kết nối vào SQL Server bằng tên SQLDBPool thay vì sử dụng địa chỉ IP.

Bước 2:
Chắc chắn rằng, SQL Server Service đang chạy. Có thể kiểm tra dịch vụ này có đang chạy hay không bằng cách sử dụng lệnh SC hoặc sử dụng SQL Server Configuration Manager, trong rất nhiều trường hợp, bạn sẽ thấy lý do là do SQL Server Services đã bị dừng vì lý do nào đó.
Sử dụng SQL Server Configuration Manager:
[Hình: image3.JPG]

Sử dụng lệnh SC:
[Hình: image4.JPG]

Chú ý đối với SQL cài theo tùy chọn Named Instance, bạn phải viết câu lệnh SC theo cấu trúc sc query mssql$instancename.

Bước 3:
Kiểm tra xem dịch vụ SQL Browsercó đang chạy không. Nếu bạn cài đặt SQL Server theo tùy chọn Named Instance nhưng chưa chỉ định cổng TCP/IP, sẽ dẫn đến đòi hỏi phải kết nối quả cổng động (Listening on a dynamic port). Để giải quyết trường hợp này, thì dịch vụ SQL Browser cần phải được Enabled và đang chạy. Có thể kiểm tra dịch vụ này bằng cách sử dụng 2 cách ở bước 2, trong đó câu lệnh SC sử dụng như sau:

[Hình: image5.JPG]

Bước 4:
Phải chắc chắn là bạn đã sử dụng chính cách tên SQL đã được cài đặt, khi bạn cài theo Default Instance, tên máy là lựa chọn tốt nhất để đại diện cho Instance Name, còn nếu cài theo Named Instance và khi bạn truy cập đến một Instance Name ví dụ như sqlexpress, bạn cần gõ địa chỉ đầy đủ Tên máy \Instance Name. Ví dụ: server\SQLExpress.

Bước 5:
Kiểm tra xem SQL Server có ở trong mạng hay không. Bạn có thể sử dụng lệnh SQLCMD –L để liệt kê các Instance đã được cài đặt trong mạng, chú ý là lệnh này chỉ thực hiện được khi SQL Browser đang chạy.

[Hình: image7.JPG]

Bước 6:
Kiểm tra phương thức kết nối TCP/IP và Name Pipes cũng như các cổng, bằng cách sử dụng SQL Server Configuration Manager, bạn cần Ennabled chúng lên:

[Hình: image8.JPG]

Với phương thức TCP/IP, bạn cần kiểm tra cổng kết nối, bằng cách chuột phải vào phương thức TCP/IP ở cửa sổ trên, cổng mặc định cho phương thức này là 1433, nó có thể đã bị thay đổi cho mục đích bảo mật.

[Hình: image9.JPG]

Bước 7:
Kiểm tra xem tùy chọn Remote connections đã được Ennabled hay chưa. Chuột phải vào tên Server trong SSMS và chọn Properties. Chọn thẻ Connections, và chắc chắn rằng tùy chọn Allow remote connection to this server đã được đánh dấu. Bạn cần khởi động lại SQL Server Instance để tùy chọn này có hiệu lực, bằng cách chuột phải vào tên server trong SSMS và chọn Restart.

[Hình: image10.JPG]

Bạn cũng có thể cấu hình Remote Server Connection bằng cách sử dụng các lệnh sau, và phải khởi động lại SQL Server Instance như trên:
Mã:
exec sp_configure "remote access", 1 -- 0 on, 1 offexec sp_configure "remote query timeout", 600 -- secondsexec sp_configure "remote proc trans", 0 -- 0 on, 1 off

Bước 8:
Kiểm tra file Log, kết nối vào SQL Server nội bộ và kiểm tra error log cho cổng vào. Chạy thủ tục XP_READERRORLOG để đọc file log trong SSMS. Cần phải thấy được nội dung tương tự như sau, trong đó TCP/IP và Named Pipes đã được Ennabled và cổng sử dụng cho phương thức TCP/IP là 1433:

[Hình: image11.JPG]

Bước 9:
Cấu hình Window Firewall cho cổng SQL Server và SQL Browser service. Vào Control Panel -> Click Windows Firewall -> và chuyển đến thẻ như hình sau:

[Hình: image12.JPG]

Chọn Add Port và điền tên và số cổng như sau:

[Hình: image13.JPG]

Click vào Add Program để thêm SQL Browser service. Bạn có thể tìm file SQLBrowser.exe (file chạy của SQL Browser service) trong thư mục: C:\Program Files\Microsoft SQL Server\90\Shared và thêm vào danh sách ngoại lệ (Exception list).

[Hình: image14.JPG]

Bước 10:
Nếu bạn có thể kết nối vào SQL Server trực tiếp trên máy chủ, nhưng không thể kết nối vào từ máy khách, chạy thủ thục sau để kiểm tra SPN:

Mã PHP:
EXEC xp_readerrorlog 0,1,"could not register the Service Principal Name",Null 

Nếu SPN không tìm thấy, bạn cần cấu hình và đăng ký SPN theo hướng dẫn ở link sau: http://technet.microsoft.com/en-us/libra...35885.aspx

Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Noname


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Tổng hợp các bản cài đặt SQL Server đến 2016 maidinhdan 0 423 16-06-15, 11:25 AM
Bài mới nhất: maidinhdan
  Hướng Dẫn Một vài lưu ý cho người quản trị MS SQL server Noname 2 1,105 25-05-15, 03:33 PM
Bài mới nhất: Noname
  [Help] Xin SQL Server Migration Assistant (SSMA) for Access V5.2 maidinhdan 7 1,086 04-03-15, 10:54 AM
Bài mới nhất: maidinhdan
  Hướng Dẫn Video: 1/10: Cài đặt SQL Server 2005 trên WinXP maidinhdan 0 390 24-02-15, 05:27 PM
Bài mới nhất: maidinhdan
  Sự khác nhau trong câu lệnh SQL sử dụng trong Access (Jet) và SQL Server (SS) lehongduc 1 595 27-11-14, 09:16 PM
Bài mới nhất: hieuvn

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ