Cách dễ dàng để kiểm tra kết nối với SQL Server từ máy khách


18

Để khắc phục sự cố, tôi muốn có thể kiểm tra xem máy khách có thể kết nối với phiên bản SQL Server không, độc lập với ứng dụng có thể không thể kết nối với Máy chủ SQL.

Có cách nào dễ dàng (có nghĩa là không phải cài đặt phần mềm bên thứ 3) để thực hiện việc này bằng các công cụ hệ thống Windows mặc định không? Có lẽ sử dụng các tập lệnh hoặc ứng dụng mạng?


trên máy tính xách tay của tôi, tôi có thể tạo kết nối sqberver odbc và kiểm tra quyền truy cập vào sqlserver. Nhưng tôi không biết nếu trình điều khiển odls sqlserver có thể được tìm thấy trên tất cả các máy khách được cấu hình để truy cập sqlserver. nhưng nếu nó có thể được tìm thấy thì đây sẽ là thử nghiệm tiếp theo sau khi kiểm tra khả năng tiếp cận của bảo vệ máy chủ sqls của máy chủ với telnet.
phép lạ173

Câu trả lời:


15

Nếu máy chủ đang sử dụng TCP / IP, thì cách đơn giản là chỉ telnet đến cổng SQL Server và xem nó có kết nối không. Theo mặc định, đó là cổng 1433, vì vậy điều này sẽ hoạt động:

telnet servername 1433

Điều đó có thể sẽ thích hợp trong hầu hết các trường hợp.

Nếu nó sử dụng một cổng khác hoặc các cổng động (phổ biến với một thể hiện được đặt tên), thì bạn sẽ cần xác định cổng nào hiện đang nghe. Kiểm tra trình quản lý cấu hình SQL Server để xem đó là cổng cụ thể hay cổng động. Nếu nó sử dụng các cổng động, thì miễn là bạn không có nhiều phiên bản trên máy chủ, netstat -abncó lẽ là cách đơn giản nhất để tìm thấy những gì nó đang sử dụng. Mặt khác, đào qua nhật ký sự kiện Windows hoặc nhật ký lỗi SQL Server cho một thông báo cho biết ví dụ cổng nào được sử dụng.

Nếu SQL Server đang sử dụng ống có tên, thì tôi tin rằng nếu bạn có thể truy cập vào các chia sẻ trên máy, bạn có kết nối mạng đầy đủ. Bài viết này nói rằng bạn có thể đi xa hơn và thử kết nối với chia sẻ IPC $:

http://msdn.microsoft.com/en-us/l Library / aa275787% 28v = sql.80% 29.aspx

net use \\servername\IPC$

Điều đó được viết cho SQL Server 2000, nhưng tôi không tưởng tượng khía cạnh này đã thay đổi nhiều, nếu có.


2
Điều đó không thấy nếu máy khách có thể "kết nối với phiên bản SQL Server". Đó chỉ là thử nghiệm để xem một cổng có lắng nghe không.
Thomas Stringer

4
... đang xem liệu một hệ thống máy khách "có thể kết nối với phiên bản SQL Server, độc lập với ứng dụng có thể không thể kết nối với Máy chủ SQL hay không." Bất cứ điều gì ngoài kết nối mạng là xử lý các vấn đề ứng dụng.
db2

22

Một phương pháp kiểm tra đơn giản cho kết nối SQL là tạo một tệp văn bản trống, với phần mở rộng tệp là "UDL". Bạn có thể tạo nó trong Notepad. Và nó có thể có bất kỳ tên nào. Tôi sử dụng "TestQuery.UDL"

Lưu nó trên máy tính để bàn của PC Windows và nhấp đúp vào nó.

Hộp thoại "Thuộc tính liên kết dữ liệu" sẽ bật lên nơi bạn có thể nhập địa chỉ IP của máy chủ SQL và tên người dùng và mật khẩu SQL.

Nhấp vào nút "Kiểm tra kết nối" để xem bạn có thể kết nối không.

nhập mô tả hình ảnh ở đây


Hãy chắc chắn nhấp vào tab Nhà cung cấp và chọn đúng nhà cung cấp OLE DB: "Nhà cung cấp Microsoft OLE DB cho SQL Server"
DaveB ngày

Dave, chào mừng, và câu trả lời tốt. Bạn có thể chỉnh sửa bài đăng của mình (góc dưới bên trái) để thêm thông tin bổ sung này. Sau đó xóa bình luận của bạn.
Michael Green

Đây thực sự là một câu trả lời tuyệt vời vì nó hoạt động trên hầu hết mọi máy chủ bất kể cái gì hoặc không được cài đặt. Tất cả bạn cần là Notepad. Cảm ơn câu trả lời tuyệt vời này, thực sự đã giúp tôi thuyết phục khách hàng của mình rằng kết nối SQL đang hoạt động.
cướp

8

Miễn là bạn có Microsoft.SqlServer.Smolắp ráp GAC trên máy cục bộ, điều này có thể dễ dàng thực hiện với PowerShell:

[Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.Smo') | Out-Null

$server = New-Object Microsoft.SqlServer.Management.Smo.Server("YourSqlServerName")

# do a simple operation to see if you can get data
Try {
    $server.Version | Out-Null
    Write-Host "SQL Server connection successful!!!"
}
Catch [System.Exception] {
    Write-Host "Error connecting to SQL Server..."
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.