SQL Server được khởi động nhưng không nghe trên bất kỳ cổng nào


9

Tôi mới cài đặt SQL Server 2012. Chưa có cơ sở dữ liệu nào được tạo. Và tôi có thể mở Management Studio bằng sa / mật khẩu. Binn \ sqlservr.exe được bắt đầu như một dịch vụ và tôi có thể thấy nó bắt đầu trong danh sách dịch vụ. Tuy nhiên, nó không nghe cổng 1433 hoặc thậm chí, không nghe bất kỳ cổng nào theo mặc định, như tôi đã kiểm tra như dưới đây:

tasklist|find /I "sql"

Tôi đã nhận:

sqlservr.exe                  5668 Services                   0     40,112 K

Trong đó 5668 tôi nghĩ là PID. Và sau đó để có được PID = "5668" đang lắng nghe cổng nào:

netstat -ano | find /I "5668"

nhưng tôi không có gì ngoại trừ trống. Mặt khác, sau khi tìm kiếm các bài đăng trong trang web này, tôi đã kiểm tra kỹ cấu hình SQL Server của mình: start-> All Programs -> Microsoft SQL Server 2012 -> Công cụ cấu hình -> Trình quản lý cấu hình SQL Server-> SQL Server SQL Native Client 11.0 Cấu hình -> Giao thức máy khách -> TCP / IP -> Cổng mặc định 1433. Có 3 dịch vụ, SQL Server (MyInstanceName), SQL Server Agent (MyInstanceName) và SQL Server Browser. Hai cuối cùng được dừng lại.

Trình quản lý cấu hình máy chủ SQL-> Cấu hình mạng máy chủ SQL-> Giao thức cho MyInstanceName -> TCP / IP bị tắt theo mặc định, sau khi tôi bật nó và khởi động lại dịch vụ và lặp lại netstat -ano | lệnh find / I "newPIDNum" Tôi đã tìm thấy

TCP    0.0.0.0:52395          0.0.0.0:0              LISTENING  5668(newPIDNum)   

Tại sao 52395 thay vì 1433? Và tôi đã thất bại trong việc tạo DSN bằng quản trị viên Nguồn dữ liệu ODBC của Windows, điều này trả về cho tôi một lỗi: không tìm thấy máy chủ SQL được chỉ định. Có ai giúp tôi không? Cảm ơn.


Cấu hình mạng máy chủ SQL mặc định (cho năm 2008, không thể tìm thấy phiên bản 2012 nhưng tôi không nghĩ nó khác biệt)
Damien_The_Unbeliever

Cảm ơn. Một sự giúp đỡ thực sự tốt cho tôi. Bất kỳ ý kiến ​​thêm về DSN của tôi?

Có vẻ như bạn đang sử dụng một thể hiện được đặt tên (chỉ phiên bản mặc định mới nghe vào năm 1433, theo như tôi biết). Bạn có bao gồm tên dụ khi cố gắng tạo DSN không?
Damien_The_Unbeliever

Có, khi cài đặt, tôi đã nhập tên cho Instance. Khi tạo DSN, tôi được yêu cầu nhập tên DSN (Tôi đã nhập tên riêng), máy chủ SQL để kết nối (Đây là hộp chọn thả xuống và tôi đã thử hai lựa chọn ở đây, cả hai đều là (cục bộ), một lựa chọn khác là <.MyInstanceName>),

Tôi chưa thấy nơi nào khác để bao gồm MyInstanceName. Và nút tiếp theo hướng dẫn tôi xác thực cũng như <Cấu hình máy khách> mà tôi có thể đặt <Bí danh máy chủ>, <Tên máy chủ> và kiểm tra <Cổng xác định động>.

Câu trả lời:


13

Tại sao 52395 thay vì 1433

Các trường hợp được đặt tên nghe trên các cổng động. Là công việc của Dịch vụ Trình duyệt Máy chủ Sql để thông báo cho khách hàng về cổng thực tế. Trình duyệt Sql lắng nghe trên UDP 1434 và trả lời các câu hỏi có dạng 'cổng nghe của ví dụ "foo" là gì?'. Dịch vụ Trình duyệt Máy chủ Sql được yêu cầu cho cả giao thức TCP và đường ống có tên. Khách hàng sử dụng Trình duyệt SQL Server trong suốt, không cần cấu hình đặc biệt. Bằng cách chỉ định một tên dụ trong chuỗi kết nối (hoặc ODBC DSN), thư viện máy khách biết rằng nó phải liên hệ với dịch vụ Trình duyệt SQL Server trước.

Có 3 dịch vụ, SQL Server (MyInstanceName), SQL Server Agent (MyInstanceName) và SQL Server Browser. Hai cuối cùng được dừng lại

Rõ ràng để Trình duyệt SQL Server thực hiện công việc của mình, nó cần được khởi động. Bắt đầu nó, và thay đổi loại khởi động thành tự động.

Là một lưu ý phụ, một cấu hình thay thế thường được sử dụng là sử dụng các cổng tĩnh cho thể hiện được đặt tên và chỉ định cổng trong chuỗi kết nối ( tcp:<hostname>:<port>). Nó có lợi thế là đưa SQL Server Browser ra khỏi phương trình, nhưng nó đòi hỏi phải bảo trì khách hàng cẩn thận. Thay đổi cổng nghe yêu cầu thay đổi phối hợp ở tất cả các máy khách, tất cả các máy, tất cả các vị trí, thường là một nỗi đau lớn. Tôi khuyên bạn nên lấy sự phụ thuộc vào Trình duyệt SQL Server thay thế.


13

Điều khiến máy chủ SQL của tôi lắng nghe các TCPkết nối trên cổng 1433 là ...

  1. Công cụ cấu hình / Trình quản lý cấu hình máy chủ SQL
  2. bấm vào tên ví dụ trong Cấu hình mạng máy chủ SQL
  3. cho phép TCPgiao tiếp
  4. Nhấp chuột phải vào TCPmục giao tiếp, chọnProperties
  5. Nhấp vào tab địa chỉ IP
  6. Kích hoạt tính năng tất cả các địa chỉ không vmnet IP và nhập 1433 trong Portmục nhập cho " IPAll ".
  7. Khởi động lại máy chủ SQL trên tab Dịch vụ máy chủ SQL
  8. Kiểm tra cấu hình của bạn với netstat -an:

    C:\>netstat -an | find "1433"
      TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING
      TCP    [::]:1433              [::]:0                 LISTENING

1
Đây chỉ là một giải pháp phù hợp với tôi. Bất kỳ hướng dẫn sử dụng khác thậm chí không nói về cổng IPAII. Cảm ơn người đàn ông, bạn đã làm cho ngày của tôi
QkiZ

1

Tường lửa - 3 trong số đó

Những người không quen thuộc với các phiên bản Windows mới hơn (Tôi không thoải mái với bất kỳ phiên bản nào sau XP và đang cố gắng cài đặt SQL Server trên Windows 10):

  • Tường lửa của bạn cần được bật ở 3 nơi riêng biệt (nghĩa là cho 3 Hồ sơ khác nhau).

Nếu bạn chỉ làm điều đó cho lần đầu tiên bạn nhìn thấy (Hồ sơ tên miền), bạn sẽ vẫn tự hỏi tại sao bạn có thể kết nối với cổng 80 (IIS) chứ không phải 1433 (SQL Server).

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


1

Tôi chưa thể nhận xét (danh tiếng thấp vì không hoạt động nhiều): Nhưng vô hiệu hóa Windows Firewall, như đã đề cập ở trên, là câu trả lời tồi tệ nhất có thể. Chính xác sẽ là: Tạo quy tắc tường lửa trong "gửi đến" để cho phép giao tiếp Cổng 1433 trên các IP cục bộ đó (hoặc tất cả) bạn cần. Và tôi cũng khuyên bạn nên đặt IP từ xa nào được phép kết nối với 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.