Nếu bạn chưa cài MySQL:
sudo apt update
sudo apt install mysql-server -y
Sau khi cài xong, kiểm tra dịch vụ:
sudo systemctl status mysql
Nếu chưa chạy, khởi động:
sudo systemctl start mysql
sudo systemctl enable mysql
Mặc định MySQL chỉ lắng nghe 127.0.0.1
(chỉ localhost).
Bạn cần chỉnh lại để cho phép kết nối từ máy khác.
Mở file cấu hình:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Tìm dòng:
bind-address = 127.0.0.1
và thay bằng:
bind-address = 0.0.0.0
Lưu lại (Ctrl + O
, Enter, Ctrl + X
).
Rồi khởi động lại dịch vụ:
sudo systemctl restart mysql
Mặc định user root
chỉ truy cập nội bộ.
Bạn có thể tạo một user riêng hoặc mở quyền cho user sẵn có.
Cách 1: Tạo user mới (nên dùng)
Vào MySQL shell:
sudo mysql
Tạo user:
CREATE USER 'username'@'%' IDENTIFIED BY 'your_password';
Cấp quyền (vd: toàn quyền trên tất cả DB):
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Cách 2: Cho phép root truy cập từ xa (không khuyến khích)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
CREATE USER 'root'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
MySQL dùng cổng 3306, bạn cần mở nó.
Kiểm tra UFW (tường lửa):
sudo ufw status
Nếu bật, thêm rule:
sudo ufw allow 3306/tcp
sudo ufw reload
Từ máy khác trong cùng LAN:
Mở Navicat, chọn New Connection → MySQL
Nhập:
Host: địa chỉ IP của máy Ubuntu (ví dụ 192.168.1.100
)
Port: 3306
User và Password bạn đã tạo ở bước 3
Nhấn Test Connection, nếu thành công thì OK ✅
Dùng user riêng, không dùng root.
Nếu chỉ cho phép vài máy truy cập, thay %
bằng địa chỉ IP cụ thể:
CREATE USER 'username'@'192.168.1.50' IDENTIFIED BY 'password';
----------------------------------------
Nếu gặp lỗi "1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client" thì khắc phục như sau
Nguyên nhân lỗi:
Phiên bản MySQL Server (trên Ubuntu) của bạn dùng cơ chế xác thực caching_sha2_password
, nhưng Navicat hoặc MySQL Client trên Windows (thường cũ hơn, ví dụ 5.x) chỉ hỗ trợ mysql_native_password
.
sudo mysql
SELECT user, host, plugin FROM mysql.user;
Bạn sẽ thấy user của bạn (ví dụ root
hoặc username
) có plugin là caching_sha2_password
.
mysql_native_password
Giả sử user của bạn là username
:
ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES;
Nếu bạn dùng root
:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES;
sudo systemctl restart mysql
Nhập đúng:
Host: IP của máy Ubuntu
Port: 3306
User: username bạn đã chỉnh ở trên
Password: your_password
→ Bấm Test Connection → sẽ kết nối được ✅
Vào MySQL và xem plugin đã đổi chưa:
SELECT user, host, plugin FROM mysql.user;
Kết quả nên hiển thị:
username % mysql_native_password
https://drive.google.com/file/d/1IRs5vtd3gFq8zVkB75imKXOiHKJtMNma/view?usp=sharing