- 1 1. MariaDB là gì?
- 2 2. Chuẩn bị trước khi cài đặt
- 3 3. Các bước cài đặt theo bản phân phối chính
- 4 4. Cấu hình bộ ký tự
- 5 5. Security Configuration
- 6 6. Verification
- 7 7. Câu Hỏi Thường Gặp (FAQ)
- 7.1 Câu hỏi 1. Làm sao tôi có thể kiểm tra phiên bản MariaDB?
- 7.2 Câu hỏi 2. Tôi nên làm gì nếu thấy “Package not found” trong quá trình cài đặt?
- 7.3 Câu hỏi 3. Làm sao để gỡ cài đặt MariaDB?
- 7.4 Câu hỏi 4. Làm sao để sao lưu và khôi phục một cơ sở dữ liệu?
- 7.5 Câu hỏi 5. Tại sao tôi không thể kết nối tới MariaDB từ bên ngoài máy chủ?
1. MariaDB là gì?
Tổng quan và các tính năng chính của MariaDB
MariaDB là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở. Nó được phát triển dựa trên MySQL và được áp dụng rộng rãi trong nhiều hệ thống và ứng dụng nhờ tính tương thích cao.
Ban đầu, sau khi MySQL bị mua lại bởi Oracle, một số nhà phát triển của nó đã tách ra và khởi động dự án MariaDB. Do đó, MariaDB giữ lại một bộ lệnh và cấu trúc dữ liệu tương tự MySQL đồng thời nhấn mạnh tính mở và minh bạch trong thiết kế.
MariaDB miễn phí sử dụng và hỗ trợ một loạt các mục đích cho cả sử dụng thương mại và phi thương mại. Đặc biệt, nó có thành tích mạnh mẽ trong môi trường máy chủ Linux và được đánh giá cao về độ ổn định, hiệu năng và bảo mật.
Sự khác biệt so với MySQL
MariaDB và MySQL rất giống nhau, và nhiều lệnh cũng như tệp cấu hình có thể được sử dụng nguyên trạng. Tuy nhiên, có một số khác biệt quan trọng.
- Khác biệt về giấy phép Vì MySQL được phát triển và quản lý bởi Oracle, có thể áp dụng các hạn chế giấy phép trong một số kịch bản sử dụng thương mại. Ngược lại, MariaDB dựa trên GPL (Giấy phép Công cộng GNU), cho phép sử dụng linh hoạt hơn.
- Tốc độ phát triển và cách tiếp cận cộng đồng MariaDB được phát triển tích cực theo mô hình cộng đồng và thường giới thiệu các tính năng mới nhanh hơn. Nó đặc biệt mạnh trong các tính năng hướng doanh nghiệp (như các tùy chọn engine lưu trữ và tối ưu hoá hiệu năng).
- Mở rộng và tính tương thích MariaDB duy trì độ tương thích cao với MySQL đồng thời cung cấp các engine lưu trữ riêng (như Aria và ColumnStore), cho phép vận hành linh hoạt tùy theo trường hợp sử dụng. Tuy nhiên, khi các phiên bản tiến triển, có thể xuất hiện các khác biệt về tương thích, vì vậy cần thận trọng khi di chuyển.
Lợi ích khi chọn MariaDB
Khi triển khai cơ sở dữ liệu trong môi trường Linux, MariaDB mang lại các lợi ích sau:
- Cài đặt dễ dàng với cấu hình đơn giản
- Hiệu năng nhẹ và nhanh
- Khả năng mở rộng để xử lý dữ liệu quy mô lớn
- Hoạt động ổn định trong thời gian dài
- Kiến thức và tài nguyên hỗ trợ phong phú từ cộng đồng nhà phát triển toàn cầu
Vì những lý do này, MariaDB được lựa chọn cho nhiều môi trường, từ các thiết lập phát triển cá nhân đến các hệ thống sản xuất doanh nghiệp.
2. Chuẩn bị trước khi cài đặt
Trước khi cài đặt MariaDB trong môi trường Linux, có một số điểm cần xác nhận và các bước chuẩn bị cần hoàn thành. Bỏ qua bước này có thể gây ra vấn đề sau này, vì vậy việc chuẩn bị trước rất quan trọng.
Kiểm tra yêu cầu hệ thống
MariaDB là một cơ sở dữ liệu nhẹ và nhanh, nhưng vẫn có các yêu cầu hệ thống tối thiểu. Dưới đây là các yêu cầu hướng dẫn chung (có thể thay đổi tùy phiên bản và cách sử dụng):
- Hệ điều hành : Các bản phân phối Linux như Ubuntu, Debian, CentOS và RHEL
- CPU : 1 GHz trở lên (đề nghị đa nhân)
- Bộ nhớ : 512 MB trở lên (đề nghị 1 GB hoặc hơn)
- Lưu trữ : 1 GB hoặc hơn không gian trống (tùy vào khối lượng dữ liệu mà điều chỉnh)
- Mạng : Cần kết nối Internet để tải gói và áp dụng cập nhật
Lưu ý rằng trên các bản phân phối Linux cũ, các phiên bản MariaDB mới nhất có thể không được hỗ trợ. Kiểm tra phiên bản Linux của bạn và nếu cần, thêm các kho lưu trữ hoặc thực hiện các bước khác cho phù hợp.
Xác minh và cập nhật các gói cần thiết
Để cài đặt MariaDB, bạn thường sử dụng trình quản lý gói tiêu chuẩn của hệ điều hành (như APT hoặc YUM). Cập nhật hệ thống trước giúp tránh các vấn đề phụ thuộc.
Dưới đây là ví dụ cho Ubuntu/Debian:
sudo apt update
sudo apt upgrade -y
Trên CentOS/RHEL, chạy lệnh sau:
sudo yum update -y
Ngoài ra, hãy xác minh rằng các gói sau đã được cài đặt (cài đặt chúng nếu còn thiếu):
curl: Được sử dụng khi thêm kho MariaDBgnupg: Được sử dụng để xác minh khóa kýsoftware-properties-common(chủ yếu cho Ubuntu): Cần thiết để quản lý PPA. Không phải lúc nào cũng cần trên Debian.
Xem xét việc sử dụng kho MariaDB chính thức
Trong nhiều bản phân phối Linux, MariaDB đã có trong các kho gói mặc định, nhưng phiên bản được cung cấp có thể đã cũ.
Nếu bạn muốn luôn sử dụng phiên bản ổn định mới nhất, bạn có thể thêm kho MariaDB chính thức. Phần tiếp theo sẽ giới thiệu các bước cụ thể cho từng hệ điều hành, nhưng việc quyết định trước phiên bản bạn sẽ dùng sẽ giúp quá trình cài đặt diễn ra suôn sẻ hơn.
3. Các bước cài đặt theo bản phân phối chính
MariaDB có sẵn trên nhiều bản phân phối Linux, nhưng các phương pháp cài đặt có chút khác nhau. Trong phần này, chúng tôi sẽ hướng dẫn chi tiết các bước cài đặt cho ba bản phân phối tiêu biểu: Ubuntu, CentOS và Debian.
Cài đặt MariaDB trên Ubuntu
Trên Ubuntu, bạn cài đặt MariaDB bằng trình quản lý gói APT. Phần này hướng tới Ubuntu 20.04 / 22.04 LTS.
1. Cập nhật danh sách gói
sudo apt update
2. Cài đặt MariaDB
sudo apt install mariadb-server -y
Lệnh này sẽ tự động cài đặt MariaDB và các gói phụ thuộc cần thiết.
3. Khởi động và bật dịch vụ
sudo systemctl start mariadb
sudo systemctl enable mariadb
4. Kiểm tra dịch vụ đang chạy
sudo systemctl status mariadb
Nếu bạn thấy “active (running)”, dịch vụ đã khởi động thành công.
Cài đặt MariaDB trên CentOS
Trên CentOS 7 và CentOS Stream 8, bạn sử dụng YUM hoặc dnf. Vì các kho mặc định thường cung cấp các phiên bản cũ, nên thường sẽ thêm kho chính thức.
1. Thêm kho chính thức (ví dụ: MariaDB 10.6)
sudo vi /etc/yum.repos.d/MariaDB.repo
Dán nội dung sau và lưu lại:
[mariadb]
name = MariaDB
baseurl = https://downloads.mariadb.com/MariaDB/mariadb-10.6/yum/centos7-amd64
gpgkey=https://downloads.mariadb.com/MariaDB/MariaDB-Server-GPG-KEY
gpgcheck=1
Điều chỉnh phiên bản và cài đặt hệ điều hành theo nhu cầu môi trường của bạn.
2. Cài đặt các gói
sudo yum install mariadb-server -y
Hoặc trên CentOS Stream 8 trở lên:
sudo dnf install mariadb-server -y
3. Khởi động và bật dịch vụ
sudo systemctl start mariadb
sudo systemctl enable mariadb
Cài đặt MariaDB trên Debian
Debian cũng sử dụng APT, nhưng bằng cách sử dụng kho MariaDB chính thức thay vì các kho mặc định, bạn có thể cài đặt phiên bản ổn định mới nhất.
1. Cài đặt các gói phụ thuộc
sudo apt install curl software-properties-common gnupg -y
2. Thêm kho MariaDB (ví dụ: Debian 11 “Bullseye”)
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
3. Cài đặt
sudo apt update
sudo apt install mariadb-server -y
4. Khởi động và bật dịch vụ
sudo systemctl start mariadb
sudo systemctl enable mariadb

4. Cấu hình bộ ký tự
Một trong những điểm quan trọng nhất khi sử dụng MariaDB trong môi trường tiếng Nhật là cấu hình bộ ký tự (encoding). Vì tiếng Nhật bao gồm các ký tự đa byte, việc khởi động với các cài đặt không đúng có thể gây ra các vấn đề như văn bản bị rối hoặc hỏng dữ liệu.
Bộ ký tự đề xuất cho môi trường tiếng Nhật: UTF-8
Đối với MariaDB, bộ ký tự được đề xuất là utf8mb4. Nó mạnh hơn so với utf8 truyền thống và hỗ trợ các ký tự 4 byte như emoji, khiến nó phù hợp không chỉ cho tiếng Nhật mà còn cho các môi trường đa ngôn ngữ.
Trong các cài đặt mặc định của họ hàng MySQL, bạn có thể thấy latin1 hoặc utf8, và để nguyên chúng có thể gây ra vấn đề. Do đó, hãy thay đổi cài đặt thành utf8mb4 ngay sau khi cài đặt.
Cách chỉnh sửa tệp cấu hình (my.cnf)
MariaDB’s configuration file is typically located at /etc/mysql/my.cnf or /etc/my.cnf. Add or edit the [client] and [mysqld] sections as shown below.
[client]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
After changing the settings, restart MariaDB to apply them:
sudo systemctl restart mariadb
Verify the Settings Were Applied
Connect to MariaDB and confirm that the settings have been applied.
sudo mariadb
After connecting, run the following command:
SHOW VARIABLES LIKE 'character\_set%';
Expected example output:
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8mb4
character_set_results utf8mb4
character_set_server utf8mb4
If it looks like this, the character set configuration has been applied correctly.
Note: Character Sets for Existing Data
If you already have existing databases or tables, their character sets will not change automatically. If needed, you must change them individually with an ALTER statement like the following:
ALTER DATABASE your_database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
Similarly, you can change settings at the table or column level.
5. Security Configuration
Right after installing MariaDB, security is not fully hardened. By applying minimum essential security settings before production use, you can reduce the risk of unauthorized access and data leaks. This section introduces basic MariaDB security configuration steps.
Run mysql_secure_installation
MariaDB provides a security hardening script that you should run immediately after installation: mysql_secure_installation.
Run it with the following command:
sudo mysql_secure_installation
When you run it, several questions will be shown in sequence. Here’s what each option means.
- Set (or update) the root password → Set a password for the MariaDB administrator user “root”. Use a strong password.
- Remove anonymous users → By default, an “anonymous” user may exist. This is unnecessary and risky, so removal is recommended .
- Disallow remote root login → Allowing root access directly from external networks is extremely dangerous. In most cases, set this to disallow .
- Remove the test database → The “test” database created for testing is also unnecessary in many cases. Removal is recommended .
- Reload privilege tables → This applies the above changes immediately. Confirm with “Yes” .
Answering all of these questions significantly strengthens MariaDB’s security in its default initial state.
Firewall Configuration (If Needed)
MariaDB typically communicates over port 3306. Whether you should open this port depends on how you plan to use the system.
- When using it locally or on a standalone server → You can keep port 3306 closed.
- When allowing external access (e.g., connecting from an app on another server) → Open access only for required IP addresses.
Example: Limiting access with UFW on Ubuntu
sudo ufw allow from 192.168.0.10 to any port 3306
Create a User Other Than root (Recommended)
In production, it’s best practice to create and use a dedicated user account rather than the administrator user “root”. Here is an example:
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON your_database.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
Using separate users per application helps minimize impact in case credentials are compromised.
6. Verification
After installing MariaDB, completing initial configuration, and applying security measures, the final step is to verify that everything is working correctly. This section explains how to confirm connectivity and run basic SQL commands.
Connect to MariaDB
Sau khi cài đặt, hãy xác nhận rằng bạn có thể kết nối tới MariaDB bằng lệnh sau:
sudo mariadb
Hoặc, nếu bạn muốn chỉ định người dùng và cung cấp mật khẩu:
mariadb -u root -p
Khi được yêu cầu, nhập mật khẩu bạn đã đặt bằng mysql_secure_installation.
Nếu đăng nhập thành công, bạn sẽ thấy một dấu nhắc giống như sau:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.6.16-MariaDB MariaDB Server
Nếu bạn thấy như vậy, MariaDB đang chạy bình thường và bạn có thể kết nối thành công.
Tạo một Cơ sở dữ liệu
Tiếp theo, như một thử nghiệm đơn giản, hãy tạo một cơ sở dữ liệu.
CREATE DATABASE testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Nếu thực thi thành công, cơ sở dữ liệu đã được tạo mà không có vấn đề nào.
Kiểm tra danh sách các cơ sở dữ liệu bạn có:
SHOW DATABASES;
Nếu testdb xuất hiện, thì nó đã hoạt động.
Tạo Bảng và Chèn Dữ liệu
Tạo một bảng thử nghiệm và chèn một số dữ liệu.
USE testdb;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100)
);
INSERT INTO users (name, email) VALUES ('田中太郎', 'taro-tanaka@example.com');
※Ví dụ này xác minh rằng văn bản đa byte (tiếng Nhật) được lưu trữ đúng cách bằng utf8mb4.
Lấy Dữ liệu
Để xác nhận dữ liệu đã chèn, chạy truy vấn sau.
SELECT * FROM users;
Nếu đầu ra hiển thị thông tin cho Taro Tanaka, bạn có thể kết luận rằng cơ sở dữ liệu đang hoạt động đúng.
Kiểm tra Thông tin Máy chủ
Nếu bạn muốn kiểm tra thông tin cơ bản như phiên bản MariaDB, chạy lệnh sau:
STATUS;
Lệnh này hiển thị các chi tiết như trạng thái kết nối, phiên bản máy chủ và cấu hình bộ ký tự.
7. Câu Hỏi Thường Gặp (FAQ)
Khi cài đặt và vận hành MariaDB trong môi trường Linux, nhiều người gặp phải các câu hỏi hoặc vấn đề phổ biến. Biết cách xử lý chúng trước sẽ giúp yên tâm hơn. Ở đây, chúng tôi đã tổng hợp các điểm thường được tìm kiếm dưới dạng FAQ cho người mới bắt đầu đến người dùng trung cấp.
Câu hỏi 1. Làm sao tôi có thể kiểm tra phiên bản MariaDB?
Sau khi kết nối tới MariaDB, bạn có thể kiểm tra bằng cách chạy lệnh sau.
SELECT VERSION();
Hoặc, bạn có thể kiểm tra trực tiếp từ dòng lệnh như sau:
mariadb --version
Ví dụ đầu ra:
mariadb Ver 15.1 Distrib 10.6.16-MariaDB, for Linux (x86_64)
Câu hỏi 2. Tôi nên làm gì nếu thấy “Package not found” trong quá trình cài đặt?
Kiểm tra các mục sau:
- Danh sách gói chưa được cập nhật → Chạy
sudo apt updatehoặcsudo yum update, sau đó thử lại - Kho lưu trữ chính thức của MariaDB chưa được thêm đúng cách → Kiểm tra các tệp cấu hình kho (như
/etc/apt/sources.list.d/hoặc/etc/yum.repos.d/) - Phân phối và phiên bản MariaDB của bạn không tương thích → Kiểm tra lại các phiên bản được hỗ trợ trên trang tải xuống chính thức của MariaDB
Câu hỏi 3. Làm sao để gỡ cài đặt MariaDB?
Đối với Ubuntu/Debian:
sudo apt remove --purge mariadb-server mariadb-client -y
sudo apt autoremove -y
Đối với CentOS/RHEL:
sudo yum remove mariadb-server -y
Sau đó, nếu bạn cũng muốn xóa dữ liệu và các tệp cấu hình, chạy lệnh sau:
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/my.cnf /etc/mysql
*Nếu bạn có dữ liệu quan trọng, hãy chắc chắn sao lưu trước khi xóa bất kỳ thứ gì.
Câu hỏi 4. Làm sao để sao lưu và khôi phục một cơ sở dữ liệu?
Sao lưu (tạo file dump):
mysqldump -u root -p your_database > backup.sql
Khôi phục:
mysql -u root -p your_database < backup.sql
Phương pháp này đơn giản và phổ biến, và rất hữu ích cho việc di chuyển MariaDB và khôi phục sau thảm họa.
Câu hỏi 5. Tại sao tôi không thể kết nối tới MariaDB từ bên ngoài máy chủ?
Các nguyên nhân có thể bao gồm:
bind-addressđược đặt thành127.0.0.1→ Trong/etc/mysql/my.cnfhoặc/etc/my.cnf, thay đổi thànhbind-address = 0.0.0.0(cẩn thận với bảo mật)- Cổng 3306 bị tường lửa chặn → Mở cổng bằng lệnh như
sudo ufw allow 3306 - Người dùng không được phép kết nối từ xa → Bạn cần tạo một người dùng dạng
user@'%'


