2011-07-03 42 views
8

Tôi biết chúng ta nên biết các cụm từ như vậy nhưng đột nhiên tất cả các kết nối của tôi đến localhost\sqlexpress đều ngừng hoạt động. Khi .\sqlexpress(local)\sqlexpress hoạt động, đây sẽ không phải là vấn đề lớn nếu không thực tế là tôi đang làm việc trên một dự án nhóm, nơi tất cả các chuỗi kết nối được định nghĩa ở định dạng cũ. Và rõ ràng là tôi có một thời gian khó khăn để chấp nhận nó không nên làm việc nữa vì vậy tôi đã dành vài giờ phân tích và cài đặt lại một số phiên bản SQL Server không có kết quả. (Và trên đường phá vỡ các dự án db trong VS2010 vì vậy tôi cần phải cài đặt lại là tốt ...).Không thể kết nối với cơ sở dữ liệu bằng localhost sqlserver

Nhưng dưới đây là chi tiết. Như đã đề cập, tôi không thể kết nối với localhost\sqlexpress nhưng đến .\sqlexpress. Các triệu chứng tương tự bằng cách sử dụng SQL Server Manager và các chuỗi kết nối để triển khai và chạy các dịch vụ wcf. Vui vẻ đủ để giải quyết trường hợp mặc định là localhost hoạt động.

Trước tiên, có SQL Server đang chạy và chỉ để chắc chắn rằng tôi đã bật TCP/IP và đặt cổng cố định thành 1433 mặc dù nó hoạt động trên máy đồng nghiệp của tôi bị tắt TCP/IP. (Một nơi nào đó dọc theo cách tôi đọc rằng localhost có thể được giải quyết bằng cách sử dụng bộ nhớ chia sẻ khi sử dụng ứng dụng khách SQL nguyên bản để tôi đoán đó là những gì đang xảy ra trên hệ thống của mình.)

Thiết lập chỉ là một phiên bản SQL Server Express 2008 R2 và VS2010 trên Windows 7 Professional.

Bắt đầu lên Sql diễn tả errorlog nói:

Server is listening on [ 'any' <ipv6> 1433]. 
Server is listening on [ 'any' <ipv4> 1433]. 

Netstat nói (trích đoạn):

TCP 0.0.0.0:1433   Machinenename:0    LISTENING 
TCP [::]:1433    Machinenename:0    LISTENING 

Tôi lưu ý sự vắng mặt của 127.0.0.1:1433 và bất kỳ UDP trên cổng 1433

Để chẩn đoán sự cố, tôi sử dụng sqlcmd để tìm hiểu giao thông được sử dụng :

1. localhost \ SQLEXPRESS

sqlcmd -Slocalhost\sqlexpress -> Shared memory 
sqlcmd -Stcp:localhost\sqlexpress -> SQL Server Network Interfaces: Error Locating Server/Instance Specified 

không thể kết nối với localhost \ SQLEXPRESS từ SQL Server Management Studio ngay cả khi tôi chỉ định bộ nhớ chia sẻ như giao thức

2. localhost

sqlcmd -Slocalhost -> TCP 
sqlcmd -Stcp:localhost -> TCP 

Có thể kết nối với máy chủ cục bộ từ SQL Server Management S tudio

3. (địa phương) \ SQLEXPRESS

sqlcmd -S(local)\sqlexpress -> Shared memory 
sqlcmd -Stcp:(local)\sqlexpress -> SQL Server Network Interfaces: Error Locating Server/Instance Specified 

thể kết nối với (địa phương) \ SQLEXPRESS từ SQL Server Management Studio

Vì vậy, tôi bị mất ở đây. Bất kỳ sự trợ giúp nào cũng được đánh giá cao.

Trả lời

2

Bạn đã xác minh rằng bộ nhớ chia sẻ được bật trong Trình quản lý cấu hình SQL Server, trong Cấu hình mạng SQL Server | Giao thức?

Khi tôi tắt giao thức "Bộ nhớ chia sẻ", "sqlcmd -S. \ Sqlexpress" hết lần. Kích hoạt nó làm cho lệnh hoạt động tốt.

Một ý tưởng khác ... Cổng 1434 được sử dụng cho dịch vụ SQL Server Discovery, cho phép các chương trình như SQL Management Studio và tương tự phát hiện ra rằng SQL Server đang chạy trên máy. Chỉ còn một điều nữa để điều tra.

4

trong MS SQL, đi vào các công cụ cấu hình -> SQL Server Configuration Manager Chọn SQL Server Network Configuration -> Chọn giao thức trong cửa sổ bên phải cho phép tcp/ip và khởi động lại dịch vụ trong services.msc sau đó thử để kết nối với localhost \ sqlexpress

0

Chúng tôi đã gặp sự cố này. Đối với một số lý do, trên máy này, một bí danh đã được tạo ra mà chỉ đạo tên máy chủ chúng tôi đã sử dụng (localhost \ SQL2008_R2) đến một máy chủ mà không tồn tại nữa.

Khi chúng tôi đã xóa Bí danh, tất cả đều hoạt động.

Bí danh là nút cây trong Trình quản lý cấu hình SQL Server.

SQL Server Configuration Manager Alias Node

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