Một trong những khách hàng của tôi đã liên hệ với tôi về sự cố máy chủ được liên kết giữa SQL Server và MySQL Server. Vì tôi chủ yếu làm việc với SQL Server nên việc cài đặt và kết nối MySQL Server rất thú vị. Trong khi tôi đang cố gắng mô phỏng sự cố và tôi muốn tạo một máy chủ được liên kết. Trong blog này, chúng ta sẽ tìm hiểu cách khắc phục lỗi kết nối MySQL [MySQL] [ODBC 5.3 (w) Driver] Host ‘IP’ không được phép kết nối với máy chủ MySQL này.
Tôi đã cài đặt Máy chủ MySQL trên máy chủ và cung cấp mật khẩu của người dùng gốc. Khi tôi cố gắng kết nối với Máy chủ MySQL bằng ODBC.
Ngay sau khi nhấp vào kiểm tra, tôi thấy lỗi bên dưới.
IP được đề cập trong thông báo lỗi là IP của máy khách đang cố gắng kết nối. Nội dung tin nhắn như sau:
Kết nối Không thành công
[MySQL] [Trình điều khiển ODBC 5.3 (w)] Máy chủ lưu trữ ‘IP’ không được phép kết nối với máy chủ MySQL này:
Tôi chưa bao giờ gặp lỗi này khi làm việc với SQL Server, vì vậy tôi không biết về lỗi này. Khi tôi nghiên cứu, tôi đã học được dưới đây.
Theo mặc định, MySQL không cho phép máy khách từ xa kết nối với cơ sở dữ liệu MySQL.
Cách nhanh nhất để xác minh điều đó là như dưới đây. Nếu chúng tôi kiểm tra bảng mysql.user, có một mục nhập cho người dùng "root" với máy chủ lưu trữ "localhost".
Vì vậy, chúng tôi cần cấp quyền để kết nối Máy chủ MySQL với một máy khách.
CÔNG VIỆC / GIẢI PHÁP
Trước tiên, hãy đảm bảo đây không phải là vấn đề tường lửa.
Như chúng ta đã thảo luận trước đó, đó là vấn đề với quyền. Sau đó, chúng tôi có thể cấp quyền bằng lệnh.
Use mysql; GRANT ALL ON *.* to root@'x.x.x.x' IDENTIFIED BY 'your-root-password';
Bạn cũng có thể sử dụng MySQL Workbench để làm điều đó. Ảnh chụp màn hình bên dưới cho biết các bước cần làm theo. Tương tự như lệnh, chúng ta cần cung cấp tên người dùng, mật khẩu và IP trong màn hình đồ họa.
Hy vọng blog này sẽ hữu ích. Sau những thay đổi ở trên, khi bạn cố gắng kết nối với cơ sở dữ liệu mysql từ máy khách từ xa này (chúng tôi đã cung cấp IP / tên máy chủ), bạn sẽ không nhận được thông báo lỗi “Máy chủ lưu trữ không được phép kết nối với máy chủ MySQL này” nữa. Chúng tôi cũng có thể sử dụng% để cho phép tất cả các máy chủ nhưng tôi không thích tùy chọn đó.
Tôi không phải là chuyên gia về MySQL, vì vậy hãy bình luận và cho tôi biết nếu có cách nào tốt hơn.