BREAKING:

Cấu hình MySQL trên EC2 AWS

I. CÀI ĐẶT MYSQL TRÊN EC2

Nếu bạn chưa cài MySQL, làm như sau (Ubuntu/Debian):

sudo apt update
sudo apt install mysql-server

Kiểm tra MySQL:

sudo systemctl status mysql

⚙️ II. CẤU HÌNH MYSQL CHO PHÉP KẾT NỐI TỪ XA

1. Sửa mysqld.cnf

Mặc định, MySQL chỉ lắng nghe ở localhost, cần sửa để lắng nghe ở tất cả IP.

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Tìm dòng:

bind-address = 127.0.0.1

Sửa thành:

bind-address = 0.0.0.0

Lưu và thoát (Ctrl + O, Enter, Ctrl + X)

2. Khởi động lại MySQL:

sudo systemctl restart mysql

👤 III. TẠO USER CÓ QUYỀN KẾT NỐI TỪ XA

Giả sử bạn muốn tạo user tên remote_user với mật khẩu your_password.

Vào MySQL shell:

sudo mysql -u root -p

Tạo user:

CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

% có nghĩa là cho phép kết nối từ mọi IP. Bạn có thể thay thế bằng IP cụ thể nếu muốn bảo mật hơn.


🔒 IV. MỞ PORT 3306 TRONG SECURITY GROUP

  1. Vào AWS Console → EC2 → Instances → Chọn instance bạn chạy MySQL.
  2. Trong tab “Security” → Chọn Security Groups
  3. Vào tab “Inbound rules” → Click “Edit inbound rules”
  4. Thêm rule:
TypeProtocolPort RangeSource
MySQL/AuroraTCP3306Your IP hoặc 0.0.0.0/0

⚠️ KHÔNG nên dùng 0.0.0.0/0 nếu server là production, trừ khi dùng kết hợp với SSH Tunnel.


🌐 V. KẾT NỐI TỪ XA (KHÔNG SSH TUNNEL)

Mở MySQL Workbench hoặc DBeaver:

  • Host: IP public của EC2
  • Port: 3306
  • User: remote_user
  • Password: your_password

👉 Nếu vẫn không kết nối được:

  • Kiểm tra firewall trong EC2 (ufw status)
  • Kiểm tra lại port có mở (sudo netstat -tulnp | grep 3306)

🛡️ VI. (TÙY CHỌN) DÙNG SSH TUNNEL CHO BẢO MẬT

Nếu không muốn mở port 3306 ra ngoài:

  1. Mở DBeaver hoặc Workbench → cấu hình SSH Tunnel:
    • SSH Host: Public IP EC2
    • User: ec2-user hoặc ubuntu
    • Private Key: file .pem của bạn
    • Local port: 3306
    • Remote host: 127.0.0.1
    • Remote port: 3306
  2. Khi kết nối xong, dùng localhost:3306 làm DB host.

🧪 Kiểm tra kết nối từ máy bạn

mysql -h your-ec2-ip -P 3306 -u remote_user -p

Post A Comment

Your email address will not be published. Required fields are marked *

Leave a Reply