Không thể kết nối với máy chủ MySQL trong AWS?

Nếu bạn đang sử dụng AWS để lưu trữ trang web hoặc ứng dụng của mình, đôi khi bạn có thể gặp phải một số lỗi. Và một trong những lỗi đó là AWS Error 2003 (HY000). Tại đây, máy khách MySQL thử và không kết nối được với máy chủ trong đám mây AWS. Nếu bạn đang gặp lỗi, bài viết này là dành cho bạn. Tìm hiểu cách bạn có thể khắc phục lỗi này một cách nhanh chóng.

Điều gì gây ra lỗi này?

Nếu bạn kiểm tra thông báo, đó là “Lỗi AWS 2003 (HY000). Không thể kết nối với MySQL”, bạn sẽ biết rằng máy khách không thể thiết lập kết nối với máy chủ MySQL tại AWS. Nói cách khác, lưu lượng truy cập từ phiên bản AWS không thể đến được máy chủ nơi máy khách MySQL đang chạy.

Vì vậy, trước tiên người dùng phải đăng ký địa chỉ IP công khai trong các nhóm bảo mật RDS tương ứng. Đăng bài này, anh ấy có thể truy cập qua phiên bản RDS MySQL.

Làm cách nào để khắc phục lỗi này?

Bây giờ, bạn đã biết việc thay đổi cấu hình của các địa chỉ IP công cộng sẽ giải quyết được lỗi này, đã đến lúc bắt đầu với nó.

Dưới đây là các bước bạn cần thực hiện.

  • Tìm ra địa chỉ IP công khai của máy chủ. Máy này chạy mysql-client của bạn.
  • Bây giờ, điều hướng đến các nhóm bảo mật để thêm địa chỉ IP cho lưu lượng truy cập vào
  • Thêm cùng một địa chỉ cho lưu lượng truy cập đi
  • Khi bạn đã thêm cả hai, hãy làm mới các nhóm bảo mật
  • Kiểm tra kết nối từ mysql-client mà bạn chọn
Ví dụ: bạn có thể kiểm tra bằng cách sử dụng lệnh sau từ thiết bị đầu cuối nơi bạn đã định cấu hình MySQL.

Mã.

mysql -h host-public-ip/DNS -P 3306 -u username -p password

If it works, you have successfully fixed the error. If problem persists, contact your hosting provider.

Chúng tôi thường nhận được yêu cầu từ khách hàng rằng họ không thể kết nối với tài khoản Amazon RDS từ các phiên bản khác

Tại Bobcares, chúng tôi thường xử lý các yêu cầu từ khách hàng của mình để sửa các lỗi AWS tương tự như một phần của Dịch vụ quản lý máy chủ của chúng tôi. Hôm nay chúng ta sẽ xem cách các kỹ sư hỗ trợ của chúng tôi khắc phục sự cố này cho khách hàng

Cách khắc phục Không thể kết nối với phiên bản AWS RDS

Trước khi đi vào các bước sửa lỗi này, chúng ta sẽ xem nguyên nhân gây ra lỗi này

nguyên nhân

  • Phiên bản DB không ở trạng thái khả dụng
  • Phiên bản CSDL không thể truy cập công khai
  • Quy tắc gửi đến cho nhóm bảo mật không cho phép kết nối
  • Bảng định tuyến không bao gồm Cổng Internet

Các phương pháp khắc phục sự cố này

Sau đây là một số khía cạnh giúp chúng tôi khắc phục sự cố này

1. Đảm bảo rằng phiên bản CSDL ở trạng thái khả dụng

Nếu gần đây chúng tôi đã khởi chạy hoặc khởi động lại phiên bản CSDL, thì chúng tôi phải xác nhận rằng phiên bản CSDL ở trạng thái khả dụng trong bảng điều khiển Amazon RDS

Tùy thuộc vào kích thước của phiên bản CSDL, có thể mất tới 20 phút để phiên bản CSDL khả dụng cho các kết nối mạng

Và nếu nó ở trạng thái khả dụng, Chúng tôi có thể xác minh kết nối bằng cách chạy một trong các lệnh sau

telnet  
nc  

Nếu lệnh telnet hoặc nc thành công thì chúng ta có thể hiểu rằng kết nối mạng đã được thiết lập

Vì vậy, sự cố có thể do xác thực người dùng đối với cơ sở dữ liệu, chẳng hạn như tên người dùng và mật khẩu

2. Đảm bảo rằng các quy tắc gửi đến cho nhóm bảo mật cho phép kết nối

Để tạo  một cổng internet và gắn nó vào VPC, chúng ta có thể làm như sau

1. Đầu tiên, chúng ta phải mở bảng điều khiển Amazon VPC tại https. // bảng điều khiển. aws. amazon. com/vpc/

2. Sau đó nhấp vào Cổng Internet, rồi đi tới Tạo cổng internet

3. Chúng tôi có thể đặt tên cho cổng internet nếu chúng tôi muốn vì nó là tùy chọn

4. Ngoài ra, việc thêm hoặc xóa thẻ là tùy chọn

  • [Thêm thẻ] Chọn Thêm thẻ và thực hiện các thao tác sau
  1. Đối với Khóa, hãy nhập tên khóa
  2. Đối với Giá trị, hãy nhập giá trị khóa
  • [Xóa thẻ] Chọn Xóa ở bên phải Khóa và Giá trị của thẻ

5. Sau đó, chúng ta phải nhấp vào Tạo cổng internet

6. Bây giờ hãy chọn cổng internet đã được tạo và nhấp vào Hành động, Đính kèm với VPC

7. Cuối cùng, chọn VPC từ danh sách và nhấp vào Đính kèm cổng internet

3. Tạo bảng lộ trình tùy chỉnh

Khi chúng tôi tạo một mạng con, chúng tôi sẽ tự động liên kết nó với bảng định tuyến chính cho VPC

Theo mặc định, bảng định tuyến chính không chứa tuyến đường đến cổng internet

Quy trình sau đây tạo một bảng định tuyến tùy chỉnh với một tuyến gửi lưu lượng truy cập bên ngoài VPC đến cổng internet và sau đó liên kết nó với mạng con của chúng tôi

Để tạo bảng định tuyến tùy chỉnh, chúng tôi có thể sử dụng các bước sau

1. Đầu tiên, chúng ta phải mở bảng điều khiển Amazon VPC tại https. // bảng điều khiển. aws. amazon. com/vpc/

2. Sau đó nhấp vào Bảng định tuyến và đi tới Tạo bảng định tuyến

3. Trong hộp thoại Tạo bảng lộ trình, hãy đặt tên cho bảng lộ trình của bạn theo ý muốn, sau đó chọn VPC của bạn rồi chọn Có, Tạo

4. Sau đó, chúng ta có thể chọn bảng định tuyến tùy chỉnh mà chúng ta vừa tạo

5. Sau đó, trong tab Tuyến đường, hãy nhấp vào Chỉnh sửa, Thêm tuyến đường khác và thêm các tuyến đường sau nếu cần

  • Đối với lưu lượng truy cập IPv4, hãy chỉ định 0.0.0.0/0 trong hộp Đích và chọn ID cổng internet trong danh sách Mục tiêu
  • Đối với lưu lượng truy cập IPv6, hãy chỉ định ::/0 trong hộp Đích và chọn ID cổng internet trong danh sách Mục tiêu

6. Và trong tab Hiệp hội mạng con, chúng tôi có thể nhấp vào Chỉnh sửa, chọn hộp kiểm Liên kết cho mạng con

7. Cuối cùng bấm Lưu

4. Tạo một nhóm bảo mật để truy cập internet

Theo mặc định, nhóm bảo mật VPC cho phép tất cả lưu lượng truy cập đi

Tuy nhiên, chúng tôi có thể tạo một nhóm bảo mật mới và thêm các quy tắc cho phép lưu lượng truy cập vào từ internet

Ngoài ra, sau đó chúng tôi có thể liên kết nhóm bảo mật với các phiên bản trong mạng con công khai

Để tạo một nhóm bảo mật và liên kết nó với các phiên bản, chúng ta có thể thực hiện như sau

1. Đầu tiên, chúng ta phải mở bảng điều khiển Amazon VPC tại https. // bảng điều khiển. aws. amazon. com/vpc/

2. Sau đó nhấp vào Nhóm bảo mật và đi tới Tạo nhóm bảo mật

3. Trong hộp thoại Tạo nhóm bảo mật, chúng tôi có thể chỉ định tên cho nhóm bảo mật và mô tả

4. Sau đó, chúng tôi cần chọn ID của VPC của mình từ danh sách VPC, sau đó chọn Có, Tạo

5. Tiếp theo, chúng tôi sẽ chọn nhóm bảo mật. Ngăn chi tiết hiển thị chi tiết cho nhóm bảo mật, cộng với các tab để làm việc với quy tắc gửi đến và quy tắc gửi đi

6. Trên tab Quy tắc gửi đến, nhấp vào Chỉnh sửa. Và sau đó nhấp vào Thêm quy tắc và hoàn thành các thông tin được yêu cầu

Ví dụ

Chúng ta có thể chọn HTTP hoặc HTTPS từ danh sách Loại và nhập Nguồn là 0.0.0.0/0 đối với lưu lượng IPv4 hoặc ::/0 đối với lưu lượng IPv6. Đảm bảo nhấp vào Lưu sau khi thực hiện các thay đổi

7. Tiếp theo, chúng ta có thể mở bảng điều khiển Amazon EC2 tại https. // bảng điều khiển. aws. amazon. com/ec2/  rồi nhấp vào Phiên bản

6. Chúng ta phải chọn phiên bản và nhấp vào Hành động, sau đó chọn Mạng, sau đó chọn Thay đổi nhóm bảo mật

8. Trong hộp thoại Thay đổi nhóm bảo mật, bỏ chọn hộp kiểm cho nhóm bảo mật hiện được chọn và chọn nhóm bảo mật mới

Cuối cùng, nhấp vào Gán nhóm bảo mật

5. Đặt phiên bản DB để có thể truy cập công khai

Để kiểm tra xem phiên bản CSDL có thể truy cập công khai hay không, chúng ta có thể sử dụng Bảng điều khiển Amazon RDS hoặc AWS CLI

Để thay đổi thuộc tính Publicly Accessable của phiên bản Amazon RDS thành Có

1. Mở bảng điều khiển Amazon RDS

2. Và nhấp vào Cơ sở dữ liệu, sau đó chọn phiên bản DB

3. Tiếp theo, chúng ta phải nhấp vào Sửa đổi

4. Tại đây, trong phần Kết nối, chúng ta có thể mở rộng phần Cấu hình bổ sung và nhấp vào Có thể truy cập công khai

Tại sao tôi không thể kết nối với máy chủ MySQL?

thông thường có nghĩa là không có máy chủ MySQL nào đang chạy trên hệ thống hoặc bạn đang sử dụng tên tệp ổ cắm Unix hoặc số cổng TCP/IP không chính xác when trying to connect to the server. You should also check that the TCP/IP port you are using has not been blocked by a firewall or port blocking service.

Làm cách nào để kết nối với cơ sở dữ liệu MySQL trong AWS?

Đăng nhập vào Bảng điều khiển quản lý AWS và mở bảng điều khiển Amazon RDS tại https. // bảng điều khiển. aws. amazon. com/rds/. .
Trong ngăn điều hướng, chọn Cơ sở dữ liệu để hiển thị danh sách các phiên bản CSDL của bạn
Chọn tên của phiên bản Cơ sở dữ liệu MySQL để hiển thị thông tin chi tiết của nó
Trên tab Kết nối & bảo mật, sao chép điểm cuối

Tại sao tôi không thể kết nối với phiên bản RDS của mình?

Dưới đây là một số lý do phổ biến hơn. Phiên bản CSDL RDS ở trạng thái không khả dụng nên không thể chấp nhận kết nối . Nguồn của bạn để kết nối với phiên bản CSDL không có quyền truy cập được ủy quyền trong nhóm bảo mật, danh sách kiểm soát truy cập mạng (ACL) hoặc tường lửa cục bộ của bạn.

Làm cách nào để kết nối với cơ sở dữ liệu MySQL trên EC2?

Độ phân giải .
Mở bàn làm việc MySQL
Chọn MySQL New Connection và nhập tên kết nối
Chọn Phương thức kết nối và chọn TCP/IP tiêu chuẩn qua SSH
Đối với Tên máy chủ SSH, hãy nhập địa chỉ IP công khai của phiên bản EC2 của bạn
Đối với Tên người dùng SSH, hãy nhập tên người dùng SSH mặc định để kết nối với phiên bản EC2 của bạn