Điểm:0

SQLSTATE[08001]: [Microsoft][ODBC Driver 17 cho SQL Server]Nhà cung cấp TCP: Mã lỗi 0x2746

lá cờ cn

Tôi đang sử dụng PHP Laravel 7.4 trên Ubuntu 20.04 và đang cố lấy dữ liệu từ SQL Server nằm trên máy chủ Windows trong một đám mây khác.

Phương pháp này đã được thử nghiệm trên PC (Windows) của tôi và nó đã truy xuất thành công dữ liệu từ máy chủ Windows. Tuy nhiên, trên máy chủ Ubuntu của tôi, tôi làm theo tài liệu từ Microsoft và nhận được lỗi này:

SQLSTATE[08001]: [Microsoft][Trình điều khiển ODBC 17 cho SQL Server]
Nhà cung cấp TCP: Mã lỗi 0x2746 (SQL: myquery) 
{"userId":94,"ngoại lệ":"[đối tượng] 
(Illuminate\Database\QueryException(mã: 08001): SQLSTATE[08001]: 
[Microsoft][ODBC Driver 17 cho SQL Server]Nhà cung cấp TCP: Mã lỗi 
0x2746 (SQL: myquery) tại /var/www/web-api/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669)

Tôi đã kiểm tra nhật ký trong Microsoft SQL Server Management Studio và tôi nhận thấy thông báo này xuất hiện mỗi khi tôi thực hiện yêu cầu từ Ubuntu

"Đã nhận được yêu cầu kết nối TLS 1.2 từ máy khách từ xa ứng dụng, nhưng không có bộ mật mã nào được máy khách hỗ trợ ứng dụng được hỗ trợ bởi máy chủ. Yêu cầu kết nối SSL đã thất bại."

Làm thế nào tôi có thể sửa lỗi này?

Điểm:0
lá cờ in

Một 08001 xảy ra lỗi khi kết nối ODBC với cơ sở dữ liệu SQL Server không thành công. Bạn đã đề cập đến hai điều nổi bật:

  1. cái này hoạt động trên máy phát triển cục bộ của bạn
  2. phiên bản SQL Server đang chạy (có lẽ) tại một nhà cung cấp dịch vụ đám mây khác

Khi kết nối hoạt động từ máy cục bộ của bạn, Tên người dùng/Mật khẩu có thể đúng, nhưng bạn sẽ muốn kiểm tra. Tuy nhiên, thủ phạm có khả năng nhất sẽ là tường lửa. Xác nhận rằng địa chỉ IP của Máy chủ Ubuntu được cho phép thông qua tường lửa cho Máy chủ Windows chạy SQL Server.

Các cổng sau sẽ cần phải có sẵn:

TCP: 1433, 4022, 135, 1434
UDP: 1434

naif basalib avatar
lá cờ cn
Tôi đã làm như bạn đã đề cập ở trên và tôi vẫn gặp phải lỗi tương tự. Tuy nhiên, tôi đã kiểm tra nhật ký trong MSSQL và tôi nhận thấy thông báo này xuất hiện mỗi khi tôi thực hiện yêu cầu từ Ubuntu "Đã nhận được yêu cầu kết nối TLS 1.2 từ ứng dụng khách từ xa, nhưng không có bộ mật mã nào được ứng dụng khách hỗ trợ được máy chủ hỗ trợ. Yêu cầu kết nối SSL không thành công."
lá cờ in
Lỗi đó khiến đây trở thành sự cố liên quan đến Windows Server. Hãy xem [tài liệu này](https://docs.microsoft.com/en-us/windows-server/security/tls/tls-registry-settings#tls-dtls-and-ssl-protocol-version-settings) từ Microsoft về cách định cấu hình cài đặt giao thức TLS và SSL.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.