Không thể kết nối Máy chủ không được phép kết nối với máy chủ MySQL này?

Trong bài viết nhanh này, bạn sẽ học cách giải quyết lỗi “ERROR 1130 (HY000). Máy chủ x. x. x. x không được phép kết nối với máy chủ MySQL này” lỗi trong triển khai cơ sở dữ liệu MySQL/MariaDB trên hệ thống Linux. Đây là một trong những lỗi kết nối cơ sở dữ liệu từ xa phổ biến mà người dùng gặp phải

Môi trường thử nghiệm

  • IP máy chủ ứng dụng. 10. 24. 96. 5
  • IP máy chủ cơ sở dữ liệu. 10. 24. 96. 6

Chúng tôi đã gặp lỗi khi kiểm tra kết nối cơ sở dữ liệu từ một trong các máy chủ ứng dụng của chúng tôi đến máy chủ cơ sở dữ liệu, sử dụng ứng dụng khách mysql như được hiển thị

# mysql -u database_username -p -h 10.24.96.6
Không thể kết nối Máy chủ không được phép kết nối với máy chủ MySQL này?
Không thể kết nối Máy chủ không được phép kết nối với máy chủ MySQL này?
Lỗi kết nối cơ sở dữ liệu từ xa MySQL

Lỗi chỉ ra rằng máy chủ 10. 24. 96. 5 mà người dùng cơ sở dữ liệu đang kết nối không được phép kết nối với máy chủ MySQL. Trong trường hợp này, chúng tôi phải thực hiện một số thay đổi đối với máy chủ cơ sở dữ liệu để cho phép người dùng kết nối từ xa

Trên máy chủ cơ sở dữ liệu, chúng tôi phải kiểm tra máy chủ mà người dùng ở trên được phép kết nối từ

# mysql -u root -p

Chạy các lệnh SQL sau để kiểm tra máy chủ của người dùng

MariaDB [(none)]> SELECT host FROM mysql.user WHERE user = "database_username";
Không thể kết nối Máy chủ không được phép kết nối với máy chủ MySQL này?
Không thể kết nối Máy chủ không được phép kết nối với máy chủ MySQL này?
Kiểm tra máy chủ người dùng MySQL

Từ đầu ra của lệnh, người dùng chỉ được phép kết nối với máy chủ cơ sở dữ liệu từ máy chủ cục bộ. Vì vậy, chúng tôi cần cập nhật máy chủ của người dùng như sau

Chạy lệnh GRANT sau để bật quyền truy cập MySQL cho người dùng từ xa từ máy chủ từ xa. Đảm bảo thay thế “10. 24. 96. 6” với địa chỉ IP của hệ thống từ xa, và “database_password” với mật khẩu mà bạn muốn “database_username” sử dụng

MariaDB [(none)]> GRANT ALL ON database_name.* to 'database_username'@'10.24.96.5' IDENTIFIED BY 'database_password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> SELECT host FROM mysql.user WHERE user = "database_username";
Không thể kết nối Máy chủ không được phép kết nối với máy chủ MySQL này?
Không thể kết nối Máy chủ không được phép kết nối với máy chủ MySQL này?
Cho phép người dùng truy cập cơ sở dữ liệu MySQL từ xa từ máy chủ từ xa

Để cấp cho người dùng quyền truy cập từ xa từ tất cả máy chủ trên mạng, hãy sử dụng cú pháp bên dưới

MariaDB [(none)]> GRANT ALL ON database_name.* to 'database_username'@'10.24.96.%' IDENTIFIED BY 'database_password';

Sau khi thực hiện các thay đổi trên, hãy thử kết nối từ xa với máy chủ cơ sở dữ liệu MySQL một lần nữa. Kết nối sẽ thành công như trong ảnh chụp màn hình sau

# mysql -u database_username -p -h 10.24.96.6
Không thể kết nối Máy chủ không được phép kết nối với máy chủ MySQL này?
Không thể kết nối Máy chủ không được phép kết nối với máy chủ MySQL này?
Kết nối với máy chủ cơ sở dữ liệu MySQL từ xa

Chúng tôi hy vọng giải pháp này đã giúp bạn khắc phục lỗi kết nối từ xa Mysql của mình. Nếu có bất kỳ câu hỏi nào, hãy liên hệ với chúng tôi qua biểu mẫu phản hồi bên dưới

Trong MySQL, các máy chủ được cho phép (được đưa vào danh sách trắng) cho mỗi người dùng. Vì vậy, lỗi này có nghĩa là người dùng mà bạn đang cố kết nối không có máy chủ lưu trữ từ xa của bạn trong danh sách cho phép. Có khả năng bạn đang cố kết nối với người dùng 'root', theo mặc định, chỉ cho phép kết nối từ máy chủ cục bộ. Đây là những gì nó trông giống như trong cấu hình người dùng

Không thể kết nối Máy chủ không được phép kết nối với máy chủ MySQL này?
MySQL Workbench – Người dùng và Đặc quyền

Để khắc phục điều này, hãy thêm người dùng cho phép máy chủ của bạn. Để cho phép bất kỳ máy chủ lưu trữ nào, hãy sử dụng ký hiệu đại diện %. Bạn có thể thêm người dùng từ dòng lệnh hoặc bằng ứng dụng khách giao diện người dùng (chẳng hạn như MySQL Workbench hoặc phpMyAdmin). Tôi sẽ hiển thị một ví dụ bên dưới về việc thêm người dùng cho phép bất kỳ máy chủ nào

Ghi chú. Tôi không khuyên bạn nên sửa đổi người dùng 'root'

Giải pháp – Thêm người dùng cho phép bất kỳ máy chủ nào

Giả sử bạn đang cố gắng kết nối với máy chủ MySQL nội bộ đang được sử dụng trong môi trường nhà phát triển, vì vậy bạn muốn thêm người dùng cho phép bất kỳ máy chủ nào và được cấp tất cả các đặc quyền

Đầu tiên, vào máy chủ đang chạy MySQL. Sau đó chạy Máy khách dòng lệnh MySQL (mysql. exe)

Thêm người dùng bằng mật khẩu và cho phép tất cả các máy chủ

mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password123';

Code language: Bash (bash)

Ghi chú. % là ký tự đại diện có nghĩa là tất cả các máy chủ. Vì vậy, @’%’ có nghĩa là bạn đang cho phép người dùng này kết nối từ bất kỳ máy chủ nào

Cấp tất cả các đặc quyền cho người dùng cho tất cả các lược đồ

mysql> GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

Code language: Bash (bash)

Ghi chú. VỚI TÙY CHỌN CẤP cho phép người dùng cấp đặc quyền cho người dùng khác

Bây giờ bạn sẽ có thể kết nối từ máy chủ từ xa bằng người dùng/mật khẩu bạn vừa tạo. Nếu bạn vẫn gặp lỗi kết nối, bạn có thể cần xóa các đặc quyền đã lưu trong bộ nhớ cache (tôi không cần)

________số 8_______

bắt đầu mysql. exe thủ công

Nếu bạn gặp lỗi như 'mysql. exe không xác định' hoặc nếu bạn không thể tìm thấy lối tắt Máy khách dòng lệnh MySQL, thì bạn có thể khởi động nó theo cách thủ công bằng cách sử dụng đường dẫn đầy đủ và chuyển vào một số tham số

Tại sao máy chủ MySQL của tôi không kết nối?

Dưới đây là một số lý do có thể xảy ra lỗi Không thể kết nối với máy chủ MySQL cục bộ. mysqld không chạy trên máy chủ cục bộ . Kiểm tra danh sách quy trình của hệ điều hành của bạn để đảm bảo có quy trình mysqld. Bạn đang chạy một máy chủ MySQL trên Windows với nhiều kết nối TCP/IP tới nó.

Làm cách nào để kiểm tra xem MySQL có thể truy cập được trên cổng 3306 không?

Cách đúng là sử dụng. sudo lsof -i. 3306 .

Không thể kết nối máy chủ có thể không chạy không thể kết nối với máy chủ MySQL trên localhost 10061?

Lỗi trên có nghĩa là yêu cầu kết nối với máy chủ MySQL của bạn đã bị từ chối. Có hai điều bạn cần kiểm tra để khắc phục lỗi này. Đảm bảo rằng dịch vụ MySQL của bạn đang thực sự chạy . Kiểm tra xem bạn có đang cố kết nối với đúng số cổng không.