Hướng dẫn tạo user root cho quyền remote từ xa trong mysql 5.7

Dưới đây là hướng dẫn chi tiết và đầy đủ để bạn tạo user root (hoặc user mới) có quyền remote từ xa trong MySQL 5.7, kèm theo các lưu ý quan trọng để tránh lỗi và đảm bảo bảo mật.

1. Đăng nhập MySQL

mysql -u root -p

2. Kiểm tra user root hiện tại có cho phép remote không

SELECT Host, User FROM mysql.user WHERE User='root';

Cách 1: Sửa user root hiện tại để cho phép remote

UPDATE mysql.user 
SET Host='%' 
WHERE User='root' AND Host='localhost';

Rồi flush lại:

FLUSH PRIVILEGES;

Cách 2: Tạo 1 user root mới chuyên cho remote

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

4. Cho phép MySQL lắng nghe trên IP ngoài

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

Tìm dòng:

bind-address = 127.0.0.1

Đổi thành:

bind-address = 0.0.0.0

Rồi restart:

sudo service mysql restart

5. Mở port 3306 trên firewall

UFW (Ubuntu)

sudo ufw allow 3306

FirewallD (CentOS / Almalinux)

sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload

Lưu ý bảo mật rất quan trọng

Không dùng password yếu.
Nếu được, giới hạn IP:

CREATE USER 'root'@'1.2.3.4' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'1.2.3.4' WITH GRANT OPTION;

Dùng user khác thay vì root nếu có thể.

Chúc các bạn thành công.

Bình luận