Bối cảnh và Tại sao cần MariaDB trên CentOS Stream 9?
Nếu bạn đã làm việc với Linux lâu năm, chắc hẳn CentOS không còn xa lạ. Đây là một hệ điều hành Linux miễn phí, dựa trên mã nguồn của Red Hat Enterprise Linux (RHEL). Tuy nhiên, kể từ khi CentOS chuyển từ phiên bản ổn định (CentOS Linux) sang phiên bản phát triển liên tục (CentOS Stream), nhiều thay đổi đã diễn ra. Điều này đòi hỏi chúng ta phải thay đổi cách triển khai dịch vụ.
Bản thân mình vẫn còn vài con server chạy CentOS 7, và việc di chuyển sang AlmaLinux là một bài toán mình đã xử lý. Qua đó, mình nhận ra tầm quan trọng của việc thích nghi với hệ điều hành mới, cũng như cách triển khai hiệu quả các dịch vụ cốt lõi như cơ sở dữ liệu.
Trong bối cảnh đó, MariaDB nổi lên như một lựa chọn cơ sở dữ liệu quan hệ mã nguồn mở mạnh mẽ, thường được coi là bản thay thế trực tiếp và hiệu quả cho MySQL. MariaDB được ưa chuộng bởi những người tạo ra MySQL ban đầu đã phát triển nó.
Dù duy trì khả năng tương thích cao với MySQL, nó vẫn mang lại nhiều cải tiến về hiệu suất, tính năng và bảo mật. Đặc biệt, với CentOS Stream 9, việc sử dụng các công nghệ mã nguồn mở như MariaDB càng trở nên phù hợp, đảm bảo bạn có một nền tảng dữ liệu vững chắc cho các ứng dụng của mình.
Cài đặt MariaDB Server trên CentOS Stream 9
Quá trình cài đặt MariaDB trên CentOS Stream 9 khá đơn giản nhờ vào trình quản lý gói DNF. Đầu tiên, chúng ta sẽ cập nhật hệ thống, sau đó cài đặt các gói cần thiết.
1. Cập nhật hệ thống
Đây là bước đầu tiên và quan trọng nhất, đảm bảo hệ thống của bạn luôn được cập nhật các bản vá bảo mật và gói phần mềm mới nhất.
sudo dnf update -y
2. Cài đặt MariaDB Server
CentOS Stream 9 cung cấp gói MariaDB Server trực tiếp từ kho lưu trữ mặc định. Chúng ta chỉ cần chạy lệnh sau:
sudo dnf install mariadb-server -y
Lệnh này sẽ cài đặt MariaDB Server cùng với tất cả các thư viện phụ thuộc cần thiết.
3. Khởi động và kích hoạt MariaDB
Sau khi cài đặt xong, chúng ta cần khởi động dịch vụ MariaDB và cấu hình để nó tự động chạy khi hệ thống khởi động.
sudo systemctl start mariadb
sudo systemctl enable mariadb
Để kiểm tra trạng thái của dịch vụ, bạn có thể dùng lệnh:
sudo systemctl status mariadb
Bạn sẽ thấy trạng thái là active (running) nếu mọi thứ suôn sẻ.
Cấu hình chi tiết và bảo mật MariaDB
Sau khi cài đặt, việc cấu hình ban đầu và bảo mật là cực kỳ quan trọng để đảm bảo cơ sở dữ liệu của bạn an toàn và hoạt động hiệu quả. Chúng ta sẽ sử dụng công cụ mysql_secure_installation và sau đó điều chỉnh một số cài đặt cơ bản.
1. Chạy mysql_secure_installation
Công cụ này hỗ trợ bạn các bước bảo mật MariaDB cơ bản: đặt mật khẩu root, xóa người dùng ẩn danh, cấm đăng nhập root từ xa và xóa cơ sở dữ liệu test.
sudo mysql_secure_installation
Khi chạy lệnh này, bạn sẽ được hỏi một loạt câu hỏi. Hãy trả lời như sau:
Enter current password for root (enter for none):Nhấn Enter nếu đây là lần đầu tiên bạn chạy.Set root password? [Y/n]Y (Đặt mật khẩu cho người dùng root).- Nhập mật khẩu root mới hai lần.
Remove anonymous users? [Y/n]Y (Xóa người dùng ẩn danh).Disallow root login remotely? [Y/n]Y (Cấm root đăng nhập từ xa để tăng cường bảo mật).Remove test database and access to it? [Y/n]Y (Xóa cơ sở dữ liệu test).Reload privilege tables now? [Y/n]Y (Tải lại bảng quyền).
2. Cấu hình Firewalld
Nếu bạn đã cấu hình firewalld (như mình đã hướng dẫn ở bài trước), bạn cần mở cổng 3306 để các ứng dụng hoặc máy khách khác có thể kết nối tới MariaDB. Mình thường thấy các bạn mới quên bước này và tự hỏi tại sao không kết nối được từ máy khác.
sudo firewall-cmd --permanent --add-service=mysql
sudo firewall-cmd --reload
3. Tạo cơ sở dữ liệu và người dùng mới
Việc sử dụng người dùng root cho các ứng dụng không phải là phương pháp bảo mật tốt. Bạn nên tạo một cơ sở dữ liệu và một người dùng riêng biệt với các quyền hạn cụ thể.
Đăng nhập vào MariaDB shell với người dùng root:
sudo mysql -u root -p
Nhập mật khẩu root bạn vừa đặt. Sau đó, chạy các lệnh SQL sau để tạo cơ sở dữ liệu, người dùng và cấp quyền:
CREATE DATABASE myapp_db;
CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Thay myapp_db, myapp_user và your_strong_password bằng tên cơ sở dữ liệu, người dùng và mật khẩu của bạn. Nếu muốn người dùng có thể kết nối từ bất kỳ đâu, bạn có thể thay 'localhost' bằng '%' (không khuyến khích cho môi trường sản xuất mà không có bảo mật bổ sung).
4. Cấu hình MariaDB nâng cao (Tùy chọn)
MariaDB đọc các tệp cấu hình từ /etc/my.cnf và các tệp trong thư mục /etc/my.cnf.d/. Bạn có thể tạo một tệp cấu hình tùy chỉnh để điều chỉnh hiệu suất hoặc hành vi của máy chủ.
Để điều chỉnh kích thước bộ đệm hoặc các cài đặt khác, bạn có thể tạo hoặc chỉnh sửa tệp /etc/my.cnf.d/server.cnf. Một cách hay là tạo tệp cấu hình riêng như /etc/my.cnf.d/custom.cnf.
sudo nano /etc/my.cnf.d/custom.cnf
Thêm nội dung sau vào tệp:
[mariadb]
innodb_buffer_pool_size = 512M
max_connections = 200
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
skip-name-resolve
Lưu tệp và khởi động lại dịch vụ MariaDB để các thay đổi có hiệu lực:
sudo systemctl restart mariadb
Kiểm tra và Giám sát MariaDB
Sau khi đã cài đặt và cấu hình, việc kiểm tra và giám sát là bước cuối cùng để đảm bảo MariaDB hoạt động ổn định và hiệu quả.
1. Kiểm tra kết nối cơ sở dữ liệu
Bạn có thể thử kết nối với cơ sở dữ liệu vừa tạo bằng người dùng mới để xác nhận mọi thứ hoạt động.
mysql -u myapp_user -p myapp_db
Nhập mật khẩu của myapp_user. Nếu đăng nhập thành công, bạn sẽ thấy dấu nhắc MariaDB. Bạn có thể gõ SHOW DATABASES; để kiểm tra hoặc exit; để thoát.
2. Kiểm tra trạng thái dịch vụ
Kiểm tra trạng thái dịch vụ thường xuyên để đảm bảo MariaDB đang chạy. Bạn cũng có thể xem nhật ký lỗi để tìm các vấn đề tiềm ẩn.
sudo systemctl status mariadb
sudo journalctl -u mariadb
3. Giám sát hiệu suất
MariaDB cung cấp nhiều biến trạng thái và công cụ để giám sát hiệu suất. Bạn có thể xem các biến này từ bên trong MariaDB shell:
SHOW STATUS LIKE 'Threads_connected';
SHOW GLOBAL STATUS LIKE 'Qcache%';
SHOW VARIABLES LIKE 'max_connections';
Để giám sát chuyên sâu hơn, bạn có thể cân nhắc các công cụ bên thứ ba như Prometheus với exporter hoặc Zabbix. Tuy nhiên, với mục tiêu cài đặt và cấu hình cơ bản ban đầu, việc kiểm tra thủ công này đã đủ để bạn nắm được tình hình hoạt động của database.
Đến đây, bạn đã hoàn thành việc cài đặt và cấu hình MariaDB trên CentOS Stream 9. MariaDB giờ đã sẵn sàng để phục vụ các ứng dụng của bạn. Hiểu rõ cách các thành phần hệ thống tương tác và cấu hình hợp lý sẽ giúp bạn xây dựng những hệ thống vững chắc, dễ mở rộng trong tương lai.

