- Tổng đài 24/7: 1800 646 881
- Đăng nhập
- 3
Lỗi không conect được với SQL Server là một trong những lỗi khá phổ biến.
Nếu bạn đang gặp phải tình trạng này và chưa hiểu nguyên nhân do đâu cũng như làm cách nào để khắc phục nó thì bài viết này là dành cho bạn.
Ok, hãy cùng bắt đầu thôi.
Đặt vấn đề: Không phải lúc nào bạn cũng có thể kết nối với SQL Server một cách mượt mà, đôi khi sẽ gặp một số sự cố với các thông báo như sau:
ERROR: (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) (Microsoft SQL Server, Error:) 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:
A network-related error or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 – No such host is known.) (Microsoft SQL Server, Error: 11001)
Những lỗi này thường xuất phát từ các Named Pipes hoặc kết nối TCP/IP có vấn đề.
Ok, Tiếp theo chúng ta sẽ tìm hiểu cách khắc phục lỗi không connect được SQL Server.
Bằng một nguyên nhân nhất định nào đó mà các lỗi này sẽ xuất hiện khi bạn đang cố gắng kết nối với SQL server. Hãy thực hiện các bước sau đây để xem có thể khắc phục được các sự cố đó hay không.
Bạn cần đảm bảo rằng ping được máy chủ vật lý, bởi nó là nơi chứa SQL server sau khi cài đặt. Nếu không, bạn chỉ còn cách kết nối với SQL server bằng địa chỉ IP hay địa chỉ IP/Instance Name cho phiên bản được đặt tên.
Trong trường hợp bạn kết nối bằng địa chỉ IP, có thể bổ sung SQL server vào tệp tệp /etc/host. Nhập % SystemRoot% \system32 \drivers\ etc\ để thêm mục nhập cho tệp /host, sau đó mở host bằng công cụ Notepad. Dựa vào hình ảnh bên dưới bạn có thể thấy, địa chỉ IP 74.200.243.253 và tên máy là SQLDBPool đã được thêm vào, đồng nghĩa với việc bạn có thể sử dụng tên máy là SQLDBPool để kết nối với SQL server thay vì dùng địa chỉ IP.
Để có thể kiểm tra trình trạng hoạt động của SQL server bạn có thể dùng câu lệnh SC
hoặc Trình quản lý cấu hình SQL server. Lúc này bạn có thể xác định được các phiên bản SQL đang hoạt động cũng như không hoạt động.
Bạn có thể sử dụng Trình quản lý cấu hình SQL Server để xác minh các dịch vụ đang chạy. Nếu như không thể tìm thấy, bạn có thể tham khảo ví dụ sau đây:
Trên hệ điều hành Windows, bạn có thể dựa vào dòng lệnh sau đây để xem trạng thái hoạt động của SQL server.
Lưu ý: Đối với các phiên bản SQL đã đặt tên, bạn cần viết lệnh với tên chính xác của phiên bản mới có thể truy xuất được trạng thái hoạt động. Bạn có thể sử dụng instancename để thay thế tên phiên bản SQL server thực tế.
{{EJS0}}
Nếu phiên bản SQL server của bạn chưa được cấu hình một cổng TCP/IP riêng biệt, thì rất có thể các yêu cầu của bạn sẽ được lắng nghe bởi một cổng dynamic. Vấn đề này sẽ được khắc phục khi bạn bật và chạy dịch vụ SQL server. Đồng thời bạn có thể kiểm tra trạng thái hoạt động của nó bằng Trình quản lý Cấu hình Máy chủ SQL hoặc lệnh SC như sau:
Hãy luôn đảm bảo rằng bạn đang sử dụng đúng tên phiên bản khi kết nối SQL server. Đối với trường hợp kết nối với một phiên bản mặc đình thì tên mát là một đại diện tốt nhất để thay thế cho tên phiên bản. Để chỉ định tên phiên bản bạn có thể dùng lệnh như sau: machinename\instancename, instancename
là nơi mà bạn nhập tên cho phiên bản SQL.
Để chắc chắn rằng SQL server luôn trong tình trạng có kết nối mạng, bạn có thể dụng lệnh SQLCMD -L để kiểm tra tình trạng cài đặt mạng của SQL server.
Lưu ý: Câu lệnh chỉ trả về SQL server đang chạy trên trình duyệt SQL server.
Bạn cũng cần xác minh lại xem các port, giao thức TCP/IP và Named Pipes đã được bật hay chưa. Bạn có thể kiểm tra bằng cách mở SQL Server Configuration Manager và kiểm tra các giao thức SQL Server Network Configuration. Nếu Named Pipes và TCP/IP vẫn chưa được bật, hãy kích hoạt để nó hoạt động.
Để kiểm tra giao thức TCP/IP, bạn nhấp chuột phải và chọn Properties để có thể kiểm tra toàn bộ thông tin về cổng giao tiếp TCP/IP. Thông thường cổng sẽ được để mặc định là 1433, tuy nhiên vì một số lý do bảo mật mà nó có thể bị thay đổi.
Để kiểm tra xem đã bật cho phép kết nối từ xa hay chưa, bạn vào SSMS, nhấp chuột phải và tên phiên bản và chọn Properties, chọn vào Connections và kiểm tra xem đã chọn vào ô Allow remote connections to this server hay chưa, nếu chưa hãy chọn vào nó. Nếu bạn có bất kỳ thay đổi nào hãy khởi động lại SQL server, lúc này những thứ bạn thay đổi mới có thể hoạt động.
Bạn cũng có thể định cấu hình các kết nối máy chủ từ xa bằng các lệnh dưới đây. Nếu bạn thực hiện các thay đổi, bạn sẽ cần phải khởi động lại SQL Server để những thay đổi này có hiệu lực.
Ngoài ra, bạn còn có thể định cấu hình kết nối máy chủ từ xa nhờ vào các lệnh sau đây. Hãy nhớ rằng luôn khởi động lại SQL server thì các thao tác mà bạn thực hiện mới có hiệu lực.
Cài đặt bằng lệnh dưới đây sẽ trả về kết quả tương tự như cài đặt trong Properties
{{EJS1}}
Để kiểm tra lỗi đã được ghi lại bạn có thể sử dụng XP_READERRORLOG hoặc SSMS bằng cách vào Management > chọn SQL Server Logs > sau đó chọn select the Current log. Ở cuối trang, các mục đầu tiên chính là lỗi được ghi, các thông tin tiếp theo là Named Pipes và TCP/IP đã được kích hoạt, cuối cùng là cổng đang được sử dụng 1433.
Để định cấu hình Configure the Windows Firewall cho cổng SQL Server và dịch vụ Trình duyệt SQL Server. Bạn vào Control Panel -> Chọn Windows Firewall -> Click vào tab Exceptions, tại đây bạn sẽ được cung cấp các thông tin về Configure Windows Firewall để có thể làm việc với SQL server.
Chọn vào Add Port … sau đó nhập số port và tên phiên bản SQL
Để thêm dịch vụ SQL server bạn chọn Add Program…, đường dẫn thực thi dịch vụ thường được lưu ở C:\Program Files\Microsoft SQL Server\90\Shared location đối với SQL 2005, còn các SQL server khác bạn cũng có thể lấy đường dẫn tương tự. Tiến hành duyệt qua các vị trí sau đó thêm SQLBrowser.exe vào danh sách Exceptions.
Trong trường hợp bạn có thể kết nối được với SQL khi đăng nhập thủ công vào máy chủ nhưng không kết nối được từ máy khách thì có thể Service Principal Name của bạn đang có vấn đề. Bạn hãy dùng câu truy vấn dưới đây để có thể kiểm SPN đã được đăng ký hay chưa.
{{EJS2}}
Nếu không thể xác định được SPN, có nghĩa là chưa được đăng ký, lúc này bạn có thể tham khảo Register a Service Principal Name for Kerberos Connections hay How to Configure an SPN for SQL Server Site Database Servers để biết được cách thiết lập là đăng ký SPN.
Hy vọng những thông tin bổ ích trên sẽ giúp bạn khắc phục được lỗi không connect được SQL Server.
Nếu bạn còn bất cứ câu hỏi nào liên quan lỗi kết nối SQL Server, hãy để lại bình luận ở bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.
P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.
Thuê Server Vật Lý tại BKHOST
Giảm giá cực sâu, chất lượng hàng đầu. Đăng ký ngay hôm nay: