Hướng dẫn cài đặt MySQL Server & phpMyAdmin trên Ubuntu (22.04/24.04)

1. Cập nhật hệ thống

sudo apt update
sudo apt upgrade -y

2. Cài MySQL Server

sudo apt install mysql-server -y

Kiểm tra trạng thái:

sudo systemctl status mysql

Khởi động dịch vụ:

sudo systemctl start mysql

Cho phép khởi động cùng hệ thống:

sudo systemctl enable mysql

Kiểm tra phiên bản:

mysql --version

3. Cấu hình bảo mật MySQL

sudo mysql_secure_installation

Thường chọn các tùy chọn sau:

VALIDATE PASSWORD?      Y/N
Remove anonymous users? Y
Disallow root login remotely? Y
Remove test database? Y
Reload privilege tables? Y

4. Đăng nhập MySQL

Đối với hệ thống Ubuntu mặc định:

sudo mysql

Hoặc sử dụng mật khẩu:

mysql -u root -p

5. Tạo tài khoản quản trị mới

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'MatKhau123!';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Kiểm tra danh sách tài khoản:

SELECT user,host FROM mysql.user;

6. Tạo cơ sở dữ liệu

CREATE DATABASE mydb;

Xem danh sách cơ sở dữ liệu:

SHOW DATABASES;

Sử dụng cơ sở dữ liệu vừa tạo:

USE mydb;

7. Cài đặt Apache & PHP

sudo apt install apache2 php libapache2-mod-php php-mysql -y
sudo systemctl restart apache2

8. Cài đặt phpMyAdmin

sudo apt install phpmyadmin -y

Nếu hệ thống không tự cấu hình liên kết với Apache, chạy lệnh sau:

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
sudo phpenmod mbstring
sudo systemctl restart apache2

Sau khi hoàn tất, truy cập đường dẫn ở đầu trang để mở phpMyAdmin.


9. Sao lưu cơ sở dữ liệu

Sao lưu một cơ sở dữ liệu:

mysqldump -u root -p mydb > mydb.sql

Sao lưu nhiều cơ sở dữ liệu:

mysqldump -u root -p --databases db1 db2 > backup.sql

Sao lưu toàn bộ hệ thống:

mysqldump -u root -p --all-databases > all.sql

Sao lưu và nén trực tiếp:

mysqldump -u root -p mydb | gzip > mydb.sql.gz

10. Phục hồi cơ sở dữ liệu

Tạo cơ sở dữ liệu trống trước khi phục hồi:

CREATE DATABASE mydb;

Phục hồi từ file thông thường:

mysql -u root -p mydb < mydb.sql

Phục hồi từ file nén:

gunzip < mydb.sql.gz | mysql -u root -p mydb

11. Sao lưu tự động với Cron

Mở trình chỉnh sửa cron:

crontab -e

Thêm dòng sau để sao lưu mỗi ngày lúc 2h sáng:

0 2 * * * mysqldump -u root -p'MATKHAU' mydb > /backup/mydb-$(date +\%F).sql
Lưu ý bảo mật: Không nên đặt mật khẩu trực tiếp trong tệp cron trên máy dùng chung. Bạn có thể cấu hình tệp ~/.my.cnf để lưu thông tin đăng nhập an toàn hơn.

12. Quản lý dịch vụ MySQL

# Khởi động
sudo systemctl start mysql

# Dừng
sudo systemctl stop mysql

# Khởi động lại
sudo systemctl restart mysql

# Tải lại cấu hình
sudo systemctl reload mysql

# Kiểm tra trạng thái
sudo systemctl status mysql

13. Cấu hình truy cập từ xa

Chỉnh sửa tệp cấu hình:

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

Tìm dòng sau và thay đổi địa chỉ lắng nghe:

# Trước
bind-address = 127.0.0.1

# Sau
bind-address = 0.0.0.0

Khởi động lại dịch vụ:

sudo systemctl restart mysql

Tạo tài khoản cho phép truy cập từ xa:

CREATE USER 'remote'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%';
FLUSH PRIVILEGES;

Mở cổng tường lửa nếu cần:

sudo ufw allow 3306/tcp
Cảnh báo: Chỉ mở cổng 3306 khi thực sự cần thiết và nên giới hạn truy cập theo địa chỉ IP cụ thể để tránh rủi ro tấn công.

14. Vị trí tệp quan trọng

15. Gỡ cài đặt hoàn toàn

Gỡ MySQL:

sudo systemctl stop mysql
sudo apt purge mysql-server mysql-client mysql-common -y
sudo rm -rf /etc/mysql
sudo rm -rf /var/lib/mysql
sudo apt autoremove -y

Gỡ phpMyAdmin:

sudo apt purge phpmyadmin -y
sudo apt autoremove -y

Lời khuyên: Đối với môi trường sản xuất, nên kết hợp thêm cơ chế kiểm tra định kỳ tính toàn vẹn dữ liệu, lưu trữ bản sao lưu ra máy khác và giới hạn quyền truy cập ở mức tối thiểu cần thiết.