Không thể kết nối với máy chủ cục bộ trên SQL Server Express 2012/2016


97

Tôi vừa tải xuống phiên bản mới nhất của SQL Express 2012 nhưng tôi không thể kết nối với localhost. Tôi đã thử xác thực localhost \ SQLExpress và Windows nhưng nó cho tôi thông báo lỗi không thể kết nối. Am i thiếu cái gì ở đây? Tôi đã sử dụng SQL Server 2008 trước đây và tôi chưa bao giờ gặp sự cố khi kết nối với localhost. Có vẻ như nó thậm chí không thể tìm thấy nó. Ngoài ra trong Dịch vụ, tôi chỉ thấy một SQL Server VSS Writer. Đây có phải là cách nó nên được? Hay tôi đang thiếu cái gì đó? Cảm ơn


1
Có vẻ như quá trình cài đặt không diễn ra tốt đẹp. Bạn đã thử sửa chữa / cài đặt lại nó chưa?
Vikdor

1
Bạn có chắc là bạn đã tìm thấy trình cài đặt cho máy chủ, trái ngược với, chẳng hạn như trình cài đặt Management Studio?
Damien_The_Un Believer

Câu trả lời:


181

Theo Aaron Bertand :

  1. Bạn cần xác minh rằng dịch vụ SQL Server đang chạy. Bạn có thể thực hiện việc này bằng cách truy cập Start > Control Panel > Administrative Tools > Servicesvà kiểm tra xem dịch vụ SQL Server ( SQLEXPRESS) có đang chạy hay không. Nếu không, hãy bắt đầu nó.

  2. Khi bạn đang ở trong applet dịch vụ, hãy đảm bảo rằng trình duyệt SQL dịch vụ được khởi động. Nếu không, hãy bắt đầu nó .

  3. Bạn cần đảm bảo rằng SQL Server được phép sử dụng TCP / IP hoặc các đường ống được đặt tên. Bạn có thể bật những điều này bằng cách mở Trình quản lý cấu hình SQL Server trong Start > Programs > Microsoft SQL Server 2012 > Configuration Tools(hoặc SQL Server Configuration Manager) và đảm bảo rằng TCP / IP và Ống được đặt tên được bật . Nếu bạn không tìm thấy Trình quản lý Cấu hình Máy chủ SQL trong Menu Bắt đầu, bạn có thể khởi chạy phần đính vào MMC theo cách thủ công. Kiểm tra Trình quản lý cấu hình SQL Server để biết đường dẫn đến phần đính vào theo phiên bản của bạn.

    Trình quản lý cấu hình máy chủ SQL

  4. Xác minh chế độ xác thực kết nối SQL Server của bạn khớp với chuỗi kết nối của bạn:

    • Nếu bạn đang kết nối bằng tên người dùng và mật khẩu, bạn cần định cấu hình SQL Server để chấp nhận "Chế độ xác thực máy chủ SQL":

      -- YOU MUST RESTART YOUR SQL SERVER AFTER RUNNING THIS!
      USE [master]
      GO
      DECLARE @SqlServerAndWindowsAuthenticationMode INT = 2;
      EXEC xp_instance_regwrite
        N'HKEY_LOCAL_MACHINE',
        N'Software\Microsoft\MSSQLServer\MSSQLServer',
        N'LoginMode',
        REG_DWORD,
        @SqlServerAndWindowsAuthenticationMode;
      GO
      
    • Nếu bạn đang kết nối bằng "Bảo mật tích hợp = true" (Chế độ Windows) và lỗi này chỉ xuất hiện khi gỡ lỗi trong các ứng dụng web, thì bạn cần thêm ApplicationPoolIdentity làm thông tin đăng nhập SQL Server :
  5. ngược lại, chạy Start -> Run -> Services.mscNếu vậy, nó có đang chạy không?

Nếu nó không chạy thì

Có vẻ như bạn chưa cài đặt mọi thứ. Khởi chạy tệp cài đặt và chọn tùy chọn "Cài đặt mới hoặc thêm các tính năng vào cài đặt hiện có". Từ đó, bạn sẽ có thể đảm bảo rằng dịch vụ cơ sở dữ liệu đã được cài đặt.


2
@dido: Start-> Run-> Services.msc
Ravindra Bagale

3
Một điều khác cần kiểm tra là tên phiên bản. Tùy thuộc vào cách SQL Server được cài đặt, bạn có thể cần hoặc không cần cung cấp tên phiên bản sau máy chủ.
Arvo Bowen

"TCP / IP và Ống được đặt tên được bật" dường như là cần thiết sau khi cài đặt lần đầu
James A Mohler

3
Thật là ngu ngốc nhưng đối với tôi, vấn đề là sử dụng "localhost" làm tên máy chủ chứ không phải "localhost \ SQLEXPRESS01" như đã đặt trong cài đặt
Guys

1
Trong trường hợp của tôi, SQLBrowser đã bị vô hiệu hóa và công cụ cấu hình không được liệt kê trong thư mục công cụ sql. Để khởi động công cụ cấu hình qua cmd https://docs.microsoft.com/en-us/sql/relational-databases/sql-server-configuration-manager?view=sql-server-2017 Để khởi động SQLBrowser tự động nếu cấu hình công cụ không thành công /programming/21375014/i-cannot-start-sql-server-browser
steven87vt

121

Goto Start -> Programs -> Microsoft SQL ServerYYYY -> Configuration Tools -> SQL Server YYYY Configuration Manager hoặc chạy "SQLServerManager12.msc".

Đảm bảo rằng TCP / IP được bật trong Giao thức máy khách.

Sau đó, vào "SQL Server Network Configuration" và nhấp đúp vào TCP / IP. Nhấp vào tab "Địa chỉ IP" và cuộn xuống dưới cùng. Trong "IP Tất cả", hãy xóa Cổng động TCP nếu nó hiện diện và đặt Cổng TCP thành 1433. Nhấp vào OK, sau đó quay lại "Dịch vụ SQL Server" và khởi động lại phiên bản SQL Server. Bây giờ bạn có thể kết nối qua localhost, ít nhất là tôi có thể.

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

Lưu ý rằng lỗi này tất nhiên có thể xảy ra khi kết nối từ các ứng dụng khác. Ví dụ cho Web.configchuỗi kết nối ứng dụng web C # thông thường :

<connectionStrings>
    <add name="DefaultConnection" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>

4
Cuối cùng, điều này đã làm việc cho tôi! Tôi đã thay đổi cổng trong IP1, IP2, ... nhưng không phải trong IPAll. Điều đó đã làm được, cảm ơn!
George

2
@George giống hệt bạn. Tôi thậm chí đã vô hiệu hóa tường lửa và không có gì hoạt động. Có một cổng 40xxx trong Cổng động TCP. Tôi đã xóa nó và đặt 1433 vào Cổng TCP cho IPAll, điều này cũng làm được. Cảm ơn!
Alisson

Đây cũng là chìa khóa cho tôi.
Erik Olson

1
Sau nhiều giờ đập đầu vào tường, cuối cùng việc này cũng có kết quả. Cảm ơn bạn.
Top Cat

Giải pháp tuyệt vời. Nó tiết kiệm ngày của tôi. Cám ơn rất nhiều!
Lavande

13

trong SQL SERVER EXPRESS 2012 bạn nên sử dụng "(localdb) \ MSSQLLocalDB" làm tên Nguồn dữ liệu, ví dụ bạn có thể sử dụng chuỗi kết nối như thế này

Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;

10

Tôi đã gặp vấn đề tương tự - có thể giải pháp của tôi sẽ hữu ích. Tôi vừa cài đặt MSSQL EX 2012 (cài đặt mặc định) và cố gắng kết nối với VS2012 EX. Không có niềm vui. Sau đó, tôi xem xét các dịch vụ, xác nhận rằng SQL Server (SQLEXPRESS), thực sự đang chạy.

Tuy nhiên, tôi thấy một dịch vụ thú vị khác có tên SQL Server Browser đã bị vô hiệu hóa. Tôi đã kích hoạt nó, kích hoạt nó và sau đó có thể truy xuất tên máy chủ trong một kết nối mới trong VS2012 EX và kết nối.

Kỳ lạ là họ sẽ vô hiệu hóa một dịch vụ cần thiết để VS kết nối.


Nó không bắt buộc phải kết nối; Tôi đã vô hiệu hóa nó và tôi có thể kết nối tốt. Nó chỉ làm cho mọi thứ dễ dàng hơn khi bạn không biết tên máy chủ / phiên bản chính xác để kết nối vì nó cho phép những thứ đó được phần mềm khác truy vấn.
Simon Morgan

8

Trước tiên, hãy thử giải pháp phổ biến nhất do Ravindra Bagale cung cấp .

Nếu kết nối của bạn từ localhost đến cơ sở dữ liệu vẫn không thành công với lỗi tương tự như sau:

Không thể kết nối với SQL Server DB. Lỗi: Kết nối TCP / IP với máy chủ [địa chỉ IP], cổng 1433 không thành công. Lỗi: "Kết nối bị từ chối: kết nối. Xác minh thuộc tính kết nối. Đảm bảo rằng phiên bản SQL Server đang chạy trên máy chủ và chấp nhận kết nối TCP / IP tại cổng. Đảm bảo rằng các kết nối TCP tới cổng không bị tường lửa chặn . "

  1. Mở Trình quản lý Cấu hình Máy chủ SQL.
  2. Mở rộng Cấu hình Mạng Máy chủ SQL cho phiên bản máy chủ được đề cập.
  3. Nhấp đúp vào "TCP / IP".
  4. Trong phần "Giao thức", đặt "Đã bật" thành "Có".
  5. Trong phần "Địa chỉ IP", đặt cổng TCP trong "IP Tất cả" (theo mặc định là 1433).
  6. Trong phần "Địa chỉ IP", tìm các tiểu mục có địa chỉ IP 127.0.0.1 (cho IPv4) và :: 1 (cho IPv6) và đặt cả "Đã bật" và "Hoạt động" thành "Có" và cổng TCP thành 1433.

    Thuộc tính TCP / IP

  7. Đi tới Start > Control Panel > Administrative Tools > Servicesvà khởi động lại dịch vụ SQL Server ( SQLEXPRESS).


Tôi đã thử các giải pháp khác ở trên trước khi đến đây. Cái này đã sửa nó cho tôi! Ngoài ra, tôi thấy việc tải xuống một thứ gọi là psping đã giúp tôi kiểm tra kết nối. Ví dụ: psping 127.0.0.1:1433
JMI MADISON

7

Đầu tiên hãy kiểm tra Dịch vụ SQL Server đang chạy hay đã dừng, nếu nó bị dừng, chỉ cần khởi động nó, để làm như vậy..chỉ cần làm theo các bước dưới đây.

1. Bắt đầu -> Chạy -> Services.msc

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

  1. Chuyển đến tab Chuẩn trong bảng dịch vụ sau đó tìm kiếm Máy chủ SQl (SQL2014)

"SQL2014" do tôi cung cấp, nó có thể là Tên khác trong trường hợp của bạn

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

đó là khi bạn khởi động Dịch vụ SQL, bạn có thể kết nối cơ sở dữ liệu cục bộ.

hy vọng nó sẽ giúp một ai đó.


4

Tất cả các dịch vụ của tôi đều chạy như mong đợi và tôi vẫn không thể kết nối.

Tôi đã phải cập nhật phần thuộc tính TCP / IP trong Trình quản lý cấu hình SQL Server cho các giao thức SQL Server Express của mình và đặt cổng IPALL thành 1433 để kết nối với máy chủ như mong đợi.

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


3

Thử thay đổi từ xác thực windows sang chế độ hỗn hợp


1

Điều này thật kỳ lạ, tôi có một vấn đề tương tự. Tôi đã tải xuống gói SQL 2012 Express bằng Công cụ nhưng Công cụ cơ sở dữ liệu chưa được cài đặt.

Tôi đã tải một cái khác từ MS site và cái này đã cài đặt cơ sở dữ liệu. Sau khi khởi động lại, các dịch vụ đã được liệt kê và sẵn sàng hoạt động.


1

Hoàn cảnh của tôi

  • trống Tên phiên bản trong SQL Server Management Studio> chọn công cụ cơ sở dữ liệu của bạn> Nút chuột phải> Thuộc tính (Thuộc tính máy chủ)> Thuộc tính kết nối Xem liên kết> Sản phẩm> Tên phiên bản trống

  • Nguồn dữ liệu =. \ SQLEXPRESS không hoạt động => sử dụng localhost trong web.config (xem bên dưới)

Giải pháp : trong web.config

xxxxxx = tên cơ sở dữ liệu của tôi không có .mdf yyyyyy = tên cơ sở dữ liệu của tôi trong trình khám phá cơ sở dữ liệu VS2012

Bạn có thể buộc sử dụng TCP thay vì bộ nhớ dùng chung, bằng cách đặt tiền tố tcp: vào tên máy chủ trong chuỗi kết nối hoặc bằng cách sử dụng localhost.

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.110%29.aspx


1

Tôi gặp vấn đề tương tự và tôi thấy rằng điều này xảy ra sau khi tôi cài đặt bản cập nhật cho SQL 2012. Điều đã khắc phục sự cố cho tôi là đi vào các chương trình và tính năng và chạy sửa chữa trên đó.


1

Vấn đề đối với tôi là tôi đã không chỉ rõ .\. Tôi chỉ xác định tên của phiên bản:

  • đã không làm việc: SQL2016
  • đã làm việc: .\SQL2016

1

Sau khi thực hiện các bước được đề cập bởi @ Ravindra Bagale , hãy thử bước này. Server name: localhost\{Instance name you were gave}

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


0

Hãy thử thay đổi Người dùng sở hữu dịch vụ thành Hệ thống cục bộ hoặc sử dụng tài khoản quản trị viên của bạn.

Theo dịch vụ, tôi đã thay đổi Đăng nhập Máy chủ SQL Dịch vụ (MSSQLSERVER) từ Dịch vụ NT \ Sql ... sang Hệ thống Cục bộ. Nhấp chuột phải vào dịch vụ và chuyển đến Tab Đăng nhập và chọn nút radio Tài khoản Hệ thống Cục bộ. Bạn cũng có thể buộc Người dùng khác chạy nó nếu điều đó phù hợp hơn.

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.