Cài đặt MySQL trên Ubuntu

1️⃣ Cập nhật hệ thống

Mở terminal và chạy:

sudo apt update
sudo apt upgrade -y

2️⃣ Cài MySQL Server

Cài gói MySQL:

sudo apt install mysql-server -y
  • Lệnh này sẽ cài MySQL 8.x (phiên bản mới nhất trong repo Ubuntu).
  • Nếu muốn kiểm tra phiên bản:
mysql --version

3️⃣ Bảo mật MySQL

Chạy lệnh sau để cấu hình bảo mật cơ bản:

sudo mysql_secure_installation

Lúc này sẽ hỏi bạn một số điều:

  1. VALIDATE PASSWORD PLUGIN → bạn có thể chọn 0 (không bật), 1 hoặc 2 tùy mức độ bảo mật.
  2. Thiết lập password root (nếu chưa có).
  3. Xoá anonymous users, tắt remote root login, xoá test database, reload privilege tables → chọn Y cho các câu hỏi này để an toàn.

4️⃣ Kiểm tra dịch vụ MySQL

sudo systemctl status mysql
  • Nếu muốn start/stop/restart MySQL:
sudo systemctl start mysql
sudo systemctl stop mysql
sudo systemctl restart mysql
  • Để MySQL tự chạy khi khởi động:
sudo systemctl enable mysql

5️⃣ Kết nối vào MySQL

sudo mysql

hoặc

mysql -u root -p
  • Sau đó nhập password root mà bạn vừa tạo.
  • Ví dụ để tạo database test:
CREATE DATABASE testdb;
SHOW DATABASES;
6. Thêm mới hoặc đổi mật khẩu cho user
SHOW VARIABLES LIKE 'validate_password%'; //Truoc tien phai check lai role password
SET GLOBAL validate_password.policy = LOW; // Neu muon thay doi gia tri
CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'password123'; -- Thêm mới
ALTER USER 'username'@'localhost' IDENTIFIED BY 'mat_khau_moi'; --Thay đổi
FLUSH PRIVILEGES; -- Làm mới lại quyền

4️⃣ Phân quyền cho user

Toàn quyền 1 database:

GRANT ALL PRIVILEGES ON ten_database.* TO 'dbuser'@'localhost';

Toàn quyền tất cả database:

GRANT ALL PRIVILEGES ON *.* TO 'dbuser'@'localhost' WITH GRANT OPTION;

Áp dụng:

FLUSH PRIVILEGES;

5️⃣ Cho phép đăng nhập từ IP bên ngoài (nếu cần)

CREATE USER 'dbuser'@'%' IDENTIFIED BY 'password123';
GRANT ALL PRIVILEGES ON ten_database.* TO 'dbuser'@'%';
FLUSH PRIVILEGES;

⚠️ Khuyến nghị bảo mật: chỉ mở IP cụ thể

CREATE USER 'dbuser'@'123.123.123.123' IDENTIFIED BY 'password123';

6️⃣ Kiểm tra user

SELECT user, host FROM mysql.user;

Hãy bình luận đầu tiên

Để lại một phản hồi

Thư điện tử của bạn sẽ không được hiện thị công khai.


*