Điểm:0

Trình kết nối MySQL/lỗi kết nối ODBC sau khi DNS không khớp

lá cờ cn

Tôi gặp sự cố khi định cấu hình kết nối MySQL mới với Nguồn dữ liệu ODBC (64 bit) tiện ích trên Windows Server 2019. Tôi đang sử dụng Bàn làm việc MySQL để xác định truy cập từ xa như sau:

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

Người dùng được cấp một LỰA CHỌN chỉ truy cập:

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

Tôi đã nhận thấy rằng máy chủ mà tôi cần bắt đầu kết nối (srv-bo) có một địa chỉ IP tĩnh đã được một máy chủ khác sử dụng trước đây (srv-mooc). Mục máy chủ từ xa cũ vẫn tồn tại trong DNS của bộ điều khiển miền, vì vậy tôi đã xóa nó. Kể từ đó, các Nguồn dữ liệu ODBC (64 bit) tiện ích tiếp tục cố gắng kết nối với tên của máy chủ cũ (srv-mooc)... Có vẻ như một số thông tin kết nối được lưu giữ trong ký ức ở đâu đó nhưng tôi không thể tìm ra.

Cho đến nay, tôi đã cố gắng xóa bộ đệm DNS trên Windows Server 2019 mà tôi bắt đầu kết nối từ đó. Tôi cũng đã thử thiết lập kết nối từ phiên người dùng khác và sau khi khởi động lại máy chủ. Vấn đề vẫn còn đó:

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

Thông báo lỗi:

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

Thông tin đăng nhập của người dùng hoạt động tốt từ một Windows Server 2019 khác, vì vậy chi tiết kết nối rất tốt.

Bất kỳ ý tưởng để giúp đỡ?

Thomas

vidarlo avatar
lá cờ ar
Có vẻ như người dùng không được phép đăng nhập từ máy chủ mà nó đang kết nối. Điều này sẽ giải thích tại sao nó hoạt động từ một máy khác. Phía máy chủ được người dùng xác định như thế nào? https://www.javatpoint.com/mysql-show-users
wiltomap avatar
lá cờ cn
Cảm ơn. Người dùng được phép, thực sự.Tôi đã ủy quyền cho máy chủ duy nhất `srv-abc` mà từ đó người dùng có thể truy cập vào DB. Nếu tôi xóa bộ lọc này và ủy quyền cho bất kỳ máy chủ nào, sự cố sẽ không còn nữa... Có vẻ như đó thực sự là sự cố DNS.
vidarlo avatar
lá cờ ar
Thông báo lỗi nói rằng người dùng đang kết nối từ `srv-mooc.siveer.fr`...
wiltomap avatar
lá cờ cn
Xin lỗi tôi đã chỉnh sửa bài đăng ban đầu của mình để làm cho nó rõ ràng hơn.
vidarlo avatar
lá cờ ar
Không có lý do gì để phải xin lỗi :) Câu hỏi của tôi là làm cho câu hỏi hay hơn - và do đó, bạn có nhiều khả năng nhận được câu trả lời hay hơn :) Thật dễ dàng để bỏ qua chi tiết trong những gì chúng tôi viết!
Manu avatar
lá cờ us
bạn có thể thực hiện tra cứu DNS ngược không? Không biết nếu cần thiết, nhưng có thể được. Viết srv-bo% bằng chữ nhỏ... đề phòng;)
wiltomap avatar
lá cờ cn
Tra cứu DNS ngược vẫn ổn và trỏ đúng tên máy chủ. `srv-bo%` trong chữ thường không thay đổi bất cứ điều gì ...
lá cờ cn
Máy chủ MySQL có bị ràng buộc với một dải IP cụ thể không?
wiltomap avatar
lá cờ cn
Có, nhưng đó là phạm vi cổ điển 254 địa chỉ, trong đó bao gồm cả máy chủ (cũ và thực tế).
Điểm:1
lá cờ us

Rất có thể MySQL đang duy trì bộ đệm DNS nội bộ của máy chủ. Để có một bài kiểm tra nhanh và bẩn, hãy thử THIẾT LẬP TOÀN CẦU host_cache_size=0; trên máy chủ (nếu tải DNS là vấn đề đáng lo ngại, hãy nhớ đặt lại nó về giá trị khác 0 sau khi kiểm tra).

Chỉnh sửa: Đối với MySQL 5.5, hãy thử MÁY CHỦ FLUSH;

Người giới thiệu: https://dev.mysql.com/doc/refman/8.0/en/host-cache.html#host-cache-flushing http://download.nust.na/pub6/mysql/doc/refman/5.5/en/dns.html

wiltomap avatar
lá cờ cn
Ý tưởng tốt! ...nhưng (xin lỗi) bảng `mysql.host` trên máy chủ từ xa trống (tôi đoán `host_cache_size` đã được đặt thành 0). Trên máy chủ mà tôi bắt đầu kết nối, tôi không có phiên bản cục bộ MySQL.
Brandon Xavier avatar
lá cờ us
Nếu bạn đang kiểm tra các bảng theo cách thủ công, bạn sẽ muốn xem `mysql.host_cache` thay vì `mysql.host`
wiltomap avatar
lá cờ cn
Tôi không có bảng như vậy... Phiên bản MySQL là 5.5.62.
Brandon Xavier avatar
lá cờ us
Xem các chỉnh sửa cho 5.5 MySQL (sẽ rất hữu ích nếu biết trước :-)
Brandon Xavier avatar
lá cờ us
Một nhận xét cuối cùng, `host_cache` thực sự được hiển thị (trong các phiên bản >= 5.6) thông qua DB giả `performance_schema` chứ không phải thông qua `mysql` (nó ánh xạ các cấu trúc dữ liệu trong bộ nhớ tới các bảng giống như SQL)
Điểm:0
lá cờ cn

Sau vô số tìm kiếm và sự trợ giúp quý giá trong các nhận xét khác nhau, cuối cùng tôi đã giải quyết được vấn đề bằng cách thực hiện một MÁY CHỦ FLUSH; Truy vấn SQL trong trình chỉnh sửa truy vấn trên máy chủ từ xa.

Xem tài liệu MySQL 5.5 đây.

Điểm:0
lá cờ ng

Bạn có thể thử chỉnh sửa tập tin này C:\Windows\System32\driver\etc\hosts trong đó được lưu trữ tất cả các bản ghi DNS cục bộ. Ngoài ra, vui lòng kiểm tra câu trả lời của máy chủ DNS hiện tại mà Windows sử dụng là gì, có vẻ như nó có bản ghi PTR ở đâu đó.

wiltomap avatar
lá cờ cn
Tôi đoán tệp `hosts` là tệp mặc định (tất cả các dòng đều được nhận xét và không có `srv-mooc`). Tôi không tìm thấy mục nào trong DNS của Bộ điều khiển miền. Lệnh `nslookup` trả về tên của máy chủ phù hợp, không phải máy chủ cũ. Tôi không tìm thấy bản ghi PTR nào, ở bất cứ đâu...
Zhivko Zhelev avatar
lá cờ ng
Khi bạn tạo quy tắc để chặn các kết nối khác, bạn chỉ định tên máy chủ của kết nối được phép như thế nào?
wiltomap avatar
lá cờ cn
Tôi đã nhập `srv-bo%` vì tôi cần một máy chủ khác có tên `srv-bo-rct` để có thể kết nối. Tôi đã cố nhập `srv-bo` mà không có ký tự đại diện, nhưng sự cố vẫn tiếp diễn.
Zhivko Zhelev avatar
lá cờ ng
Tôi không chắc nó sẽ hoạt động như thế nào. Tôi khuyên bạn chỉ nên cho phép cả hai máy chủ riêng biệt với tên đầy đủ, điều này sẽ thực hiện công việc. Vui lòng kiểm tra câu trả lời.
wiltomap avatar
lá cờ cn
Không, nó không. Như tôi đã viết trong nhận xét trước đây của mình, tôi đã thử chỉ nhập `srv-bo` và tôi cũng gặp lỗi tương tự.
Zhivko Zhelev avatar
lá cờ ng
``` CẤP TẤT CẢ CÁC ĐẶC QUYỀN TRÊN yourDB.* CHO srv-mooc@'srv-mooc.siveer.fr' ĐƯỢC XÁC ĐỊNH BỞI 'mật khẩu';``` như thế này phải không?
wiltomap avatar
lá cờ cn
Tôi đang sử dụng *MySQL Workbench* để xác định quyền truy cập từ xa. Vì vậy, điều này được xác định trong giao diện ứng dụng này, bên trong trường lọc.
wiltomap avatar
lá cờ cn
Vừa cập nhật bài đăng ban đầu với ảnh chụp màn hình cho *MySQL Workbench*.
Zhivko Zhelev avatar
lá cờ ng
tốt hơn, vui lòng nhập ```tên máy chủ``` trong dấu nhắc lệnh trên máy chủ windows
Zhivko Zhelev avatar
lá cờ ng
và có thể chỉ cần tạo hai người dùng khác nhau cho db và chỉ định tên máy chủ đầy đủ không?
wiltomap avatar
lá cờ cn
Lệnh `hostname` trả về `SRV-BO` như mong đợi. Tạo người dùng mới được lọc từ `SRV-BO` chỉ gây ra lỗi tương tự. Tôi cũng đã cố gắng cấp quyền cho bất kỳ máy chủ nào bằng cách chỉ nhập ký tự đại diện `%` mà không thành công nữa...
Zhivko Zhelev avatar
lá cờ ng
thử cấp thêm quyền cho người dùng này ```srv-bo```
wiltomap avatar
lá cờ cn
Kết quả tương tự, thật không may ...
Zhivko Zhelev avatar
lá cờ ng
Tôi nghĩ có gì đó không ổn với cài đặt DNS, bạn nói rằng khi bạn xóa bản ghi cũ này sau khi sự cố đó xuất hiện, vì vậy vui lòng kiểm tra lại chúng
wiltomap avatar
lá cờ cn
Sự cố luôn xảy ra trước và sau khi xóa mục nhập DNS không mong muốn. Tôi nghĩ rằng tôi không nên thử bắt đầu kết nối trước khi xóa mục nhập DNS. Như tôi đã viết trong bài đăng của mình, tôi nghĩ rằng một số loại bộ đệm được lưu trữ ở đâu đó chứ không phải ở các vị trí hoặc tệp thông thường...
Zhivko Zhelev avatar
lá cờ ng
Điều này rất khó khăn vì tất cả các truy vấn dns đều có ttl(thời gian tồn tại) có thể tối đa là 3600 giây và nếu thời gian này trôi qua thì nó sẽ phân giải tên máy chủ mới... Ý tưởng: tạo một bản ghi CNAME từ ```srv-mooc.siveer. fr đến srv-bo.siveer.fr và xem nó có hoạt động không

Đă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.