🐬 Cài Đặt MySQL trên Ubuntu 20.04
📋 Chuẩn Bị
Yêu Cầu Hệ Thống
- Ubuntu 20.04 LTS
- Quyền sudo
- Kết nối internet
🚀 Các Bước Cài Đặt
1. Cài Đặt MySQL Server
a. Cài đặt phiên bản mới nhất
# Cập nhật package index
sudo apt update
# Cài đặt MySQL Server
sudo apt install mysql-server
# Khởi động MySQL service
sudo systemctl start mysql.service
b. Cài đặt phiên bản cụ thể
# Thêm MySQL APT repository
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb
# Chọn phiên bản MySQL mong muốn trong menu cấu hình
# Ví dụ: MySQL 8.0, 5.7
# Cập nhật package index
sudo apt update
# Cài đặt phiên bản MySQL cụ thể
sudo apt install mysql-server=8.0.32-1ubuntu20.04
# hoặc
sudo apt install mysql-server=5.7.42-1ubuntu20.04
c. Khóa phiên bản MySQL
# Khóa phiên bản MySQL để tránh tự động cập nhật
sudo apt-mark hold mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
tip
Để xem các phiên bản MySQL có sẵn:
apt-cache policy mysql-server
d. Bỏ khóa phiên bản (nếu cần)
# Bỏ khóa phiên bản MySQL
sudo apt-mark unhold mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
2. Cấu Hình Bảo Mật Chi Tiết
a. Chạy Script Bảo Mật MySQL
sudo mysql_secure_installation
Trong quá trình này, bạn sẽ được hỏi các câu hỏi sau:
- Cấu hình VALIDATE PASSWORD
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No:
- Chọn Mức Độ Bảo Mật Mật Khẩu
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
- Các Bước Bảo Mật Khác
- Xóa anonymous users
- Vô hiệu hóa remote root login
- Xóa test database
- Reload privilege tables
tip
Khuyến nghị trả lời "Y" (Yes) cho tất cả các câu hỏi bảo mật để đảm bảo mức độ an toàn cao nhất
b. Kiểm Tra Cấu Hình
# Kiểm tra phương thức xác thực của users
SELECT user, host, plugin FROM mysql.user;
# Kiểm tra cấu hình charset
SHOW VARIABLES LIKE "chara%";
Kết quả mong đợi cho user:
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| debian-sys-maint | localhost | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | auth_socket |
+------------------+-----------+-----------------------+
Kết quả mong đợi cho charset:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
3. Kiểm Tra Phiên Bản
# Kiểm tra phiên bản MySQL đã cài đặt
mysql --version
# Hoặc từ trong MySQL shell
SELECT VERSION();
4. Kiểm Tra Cài Đặt
a. Tạo Database và Table Test
# Tạo database test
CREATE DATABASE test_database;
# Tạo bảng test
CREATE TABLE test_database.test_table (
id INT,
name VARCHAR(50),
address VARCHAR(50),
PRIMARY KEY (id)
);
# Thêm dữ liệu test
INSERT INTO test_database.test_table(id, name, address)
VALUES(1, "CentOS", "Hiroshima");
# Kiểm tra dữ liệu
SELECT * FROM test_database.test_table;
# Xóa database test sau khi kiểm tra xong
DROP DATABASE test_database;
✅ Kiểm Tra Cài Đặt
1. Kiểm Tra Status Service
# Kiểm tra trạng thái MySQL
systemctl status mysql.service
Kết quả mong đợi:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled)
Active: active (running)
...
2. Kiểm Tra Kết Nối
# Kết nối với user mới tạo
mysql -u username -p
⚙️ Cấu Hình Thêm
1. Cho Phép Remote Access (nếu cần)
Chỉnh sửa file cấu hình MySQL:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Tìm và sửa dòng:
bind-address = 0.0.0.0
Khởi động lại MySQL:
sudo systemctl restart mysql