Chắc bạn đã không ít lần gặp phải trường hợp viết ứng dụng kết nối với cơ sở dữ liệu MS SQL Server những thất bại, mặc dù code của bạn chính xác tới “từng xen-ti-mét”: Tên server chính xác, tên CSDL chính xác, tài khoản kết nối chính xác, v.v.. Nguyên nhân có thể đơn giản nằm ở chỗ, MS SQL Server chưa mở cổng (port) để ứng dụng của bạn kết nối vào. Sau đây là các bước đơn giản để kiểm tra việc này và cấu hình để mở cổng.
1. Khởi động dịch vụ MS SQL Server nếu bạn đang để ở chế độ “manual” thay vì “automatic”
2. Chạy chương trình CMD.exe
3. Thực hiện lệnh: netstat -an -P TCP
3. Quan sát trong các thông tin nhận được sau khi thực hiện lệnh trên, nếu không thấy xuất hiện cổng 1433 (cổng mặc định của MS SQL Server) thì nguyên nhân là đây rồi. Còn ngược lại, bạn có thể bỏ qua bài viết này được rồi.
Nào, giờ chúng ta bắt đầu tiến hành các bước cấu hình cần thiết để mở cổng 1433.
4. Chạy chương trình quản lý cấu hình của MS SQL Server (bản tôi đang hướng dẫn ở đây là 2008, các bản khác cũng tương tự như vậy)
5. Kiểm tra thông tin trong phần “SQL Server Network Configuration”
6. Chọn giao thức TCP/IP như đã thấy ở trên để thay đổi cấu hình
và thêm thông tin về cổng trong tab “IP Address” (bạn có thể đổi sang cổng khác 1433 nếu thích)
7. Tiếp theo là khởi động lại dịch vụ MS SQL Server và quay lại các bước 1, 2, 3 ở trên. Nếu vẫn không thấy cổng 1433, chắc bài này của tôi không giúp được gì cho bạn rồi! :o)
Hy vọng bạn sẽ không phải đọc lại bài viết này lần thứ 2.
Chúc bạn thành công!
Có một cách khác dễ nhớ hơn để test xem một cổng đã mở chưa đó là telnet (hoặc PuTTY nếu Win 7 chưa cài Telnet client) đến server và cổng cần kết nối.
Telnet: gõ lệnh telnet localhost 1433 nếu thấy có dấu hiệu đã kết nối và không báo lỗi gì nghĩa là đã mở cổng thành công.
PuTTY: nhập vào host name hoặc địa chỉ IP và Port 1433 chẳng hạn và ấn Open. 🙂 Nếu không thấy bị Network error: connection refused là ok. 🙂
mình cảm ơn bạn nhiều nhé
xin chào bạn, tôi đã làm theo hướng dẫn của bạn nhưng ứng dụng của tôi để file chạy ứng dụng qua máy khác nhưng không kết nối được vào máy đã cài đặt sql server.
Nhờ bạn hướng dẫn giúp qua địa chỉ mail vubachhai@gmail.com
Xin cảm ơn
Có thể còn do Firewall hoặc các chương trình bảo mật khác trên máy tính cài SQL Server nữa bạn ạ 🙂
Nếu đã đổi port của SQL thì khi kết nối từ máy khác phải điển số port đằng sau IP (hoặc tên máy tính) của máy cài SQL cần kết nối, ví du: máy càu SQL có địa chỉ IP là: 192.168.1.240, port SQl sau khi đổi là: 5110 thì khi kết nối vào máy khác phải connect theo đúng địa chỉ là: 192.168.1.240,5110 mới connect vào được (sau địa chỉ IP, tên máy là dáu phẩy (,))
Cảm ơn bạn nhiều lắm 🙂
Chỉ thiếu bước này, vãi thật, thank bạn nhiều nhé
Bài viết hay quá bạn! Cảm ơn bạn nhiều
Em chào anh chị, em dùng archlinux và telnet localhost thì nó báo lỗi y như này, nhưng khi restart mssql-server.service thì telnet thànhcông. Lỗi là gì ạ ! Ai có thể giúp em với !!!
Anh chị có thể hướng dẫn mở cổng 1433 trên archlinux được không ạ ! Em cảm ơn !!!