1. 什么是 MariaDB?
MariaDB 的概述与关键特性
MariaDB 是一款开源的关系型数据库管理系统(RDBMS)。它基于 MySQL 开发,因其高度兼容性而被广泛应用于众多系统和应用中。
最初,MySQL 被 Oracle 收购后,一些开发者分支出来并启动了 MariaDB 项目。因此,MariaDB 保留了与 MySQL 类似的指令集和数据结构,同时在设计上强调开放性和透明性。
MariaDB 免费使用,支持商业和非商业用途的各种场景。尤其在 Linux 服务器环境中,它以稳定性、性能和安全性著称,拥有良好的口碑。
与 MySQL 的区别
MariaDB 与 MySQL 非常相似,许多指令和配置文件可以直接使用。但两者之间仍存在若干重要差异。
- 授权许可差异 由于 MySQL 由 Oracle 开发和管理,在某些商业使用场景下可能受到授权限制。MariaDB 则基于 GPL(GNU 通用公共许可证),使用更为灵活。
- 开发速度与社区驱动方式 MariaDB 采用社区驱动的积极开发模式,往往更快引入新特性。它在面向企业的功能(如存储引擎选项和性能优化)方面尤为强大。
- 可扩展性与兼容性 MariaDB 在保持与 MySQL 高度兼容的同时,也提供了自己的存储引擎(如 Aria 和 ColumnStore),可根据使用场景灵活操作。但随着版本演进,兼容性差异可能出现,迁移时需谨慎。
选择 MariaDB 的优势
在 Linux 环境部署数据库时,MariaDB 具备以下优势:
- 安装简便,配置简单
- 轻量且性能出色
- 可扩展,能够处理大规模数据处理
- 长期运行稳定
- 全球开发者提供的丰富知识和支持资源
基于以上原因,MariaDB 被广泛用于从个人开发环境到企业生产系统的各种场景。
2. 安装前的准备工作
在 Linux 环境中安装 MariaDB 之前,需要确认若干要点并完成相应的准备工作。跳过此步骤可能导致后续问题,因此提前准备非常重要。
检查系统需求
MariaDB 是轻量且高速的数据库,但仍有最低系统需求。以下为一般性指南(具体需求会随版本和使用方式而异):
- 操作系统:Ubuntu、Debian、CentOS、RHEL 等 Linux 发行版
- CPU:1GHz 以上(推荐多核)
- 内存:512 MB 以上(推荐 1 GB 以上)
- 存储:1 GB 以上可用空间(根据数据量需求自行调整)
- 网络:需要互联网连接以获取软件包并进行更新
请注意,在较旧的 Linux 发行版上,可能不支持最新的 MariaDB 版本。检查你的 Linux 版本,如有必要,添加相应的仓库或采取其他措施。
验证并更新所需软件包
安装 MariaDB 通常使用操作系统的标准包管理器(如 APT 或 YUM)。提前更新系统有助于避免依赖问题。
以下是 Ubuntu/Debian 的示例:
sudo apt update
sudo apt upgrade -y
在 CentOS/RHEL 上,运行以下命令:
sudo yum update -y
此外,请确认已安装以下软件包(若缺失请先安装):
curl:在添加 MariaDB 仓库时使用gnupg:用于验证签名密钥software-properties-common(主要针对 Ubuntu):用于管理 PPA。Debian 上并非总是必需的
考虑使用官方 MariaDB 仓库
在许多 Linux 发行版中,MariaDB 已包含在默认的软件仓库中,但提供的版本可能较旧。
如果希望始终使用最新的稳定版,可以添加官方 MariaDB 仓库。下一节将介绍针对不同操作系统的步骤,提前决定要使用的版本可以使安装过程更顺畅。
3. 按主要发行版的安装步骤
MariaDB 在众多 Linux 发行版上都有提供,但安装方式略有差异。本节将针对三种具有代表性的发行版——Ubuntu、CentOS 和 Debian——详细演示安装步骤。
在 Ubuntu 上安装 MariaDB
在 Ubuntu 上,使用 APT 包管理器安装 MariaDB。本节针对 Ubuntu 20.04 / 22.04 LTS。
1. 更新软件包列表
sudo apt update
2. 安装 MariaDB
sudo apt install mariadb-server -y
该命令会自动安装 MariaDB 及其所需的依赖包。
3. 启动并设置开机自启
sudo systemctl start mariadb
sudo systemctl enable mariadb
4. 验证是否正在运行
sudo systemctl status mariadb
如果看到 “active (running)”,说明已成功启动。
在 CentOS 上安装 MariaDB
在 CentOS 7 和 CentOS Stream 8 上,使用 YUM 或 dnf。由于默认仓库通常提供的版本较旧,常需要添加官方仓库。
1. 添加官方仓库(示例:MariaDB 10.6)
sudo vi /etc/yum.repos.d/MariaDB.repo
粘贴以下内容并保存:
[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
根据你的环境需要调整版本和操作系统设置。
2. 安装软件包
sudo yum install mariadb-server -y
或在 CentOS Stream 8 及更高版本上:
sudo dnf install mariadb-server -y
3. 启动并设置开机自启
sudo systemctl start mariadb
sudo systemctl enable mariadb
在 Debian 上安装 MariaDB
Debian 同样使用 APT,但通过官方 MariaDB 仓库而非默认仓库,可安装最新的稳定版。
1. 安装依赖软件包
sudo apt install curl software-properties-common gnupg -y
2. 添加 MariaDB 仓库(示例:Debian 11 “Bullseye”)
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
3. 安装
sudo apt update
sudo apt install mariadb-server -y
4. 启动并设置开机自启
sudo systemctl start mariadb
sudo systemctl enable mariadb

4. 字符集配置
在日语环境中使用 MariaDB 时,最重要的点之一是配置 字符集(编码)。由于日语包含多字节字符,若使用不正确的设置启动,可能导致乱码或数据损坏等问题。
推荐的日语环境字符集:UTF-8
对于 MariaDB,推荐使用 utf8mb4 字符集。它比传统的 utf8 更强大,支持 4 字节字符(如表情符),因此不仅适用于日语,也适合多语言环境。
在 MySQL 系列的默认设置中,常见 latin1 或 utf8,若保持不变可能会出现问题。因此,请在安装后立即将设置改为 utf8mb4。
如何编辑配置文件(my.cnf)
MariaDB 的配置文件通常位于 /etc/mysql/my.cnf 或 /etc/my.cnf。请按如下所示添加或编辑 [client] 和 [mysqld] 部分。
[client]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
更改设置后,重启 MariaDB 以使其生效:
sudo systemctl restart mariadb
Verify the Settings Were Applied
连接到 MariaDB 并确认设置已生效。
sudo mariadb
连接后,运行以下命令:
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
如果输出如示例所示,则字符集配置已正确应用。
Note: Character Sets for Existing Data
如果已有数据库或表,它们的字符集不会自动更改。如有需要,必须使用如下 ALTER 语句逐个修改:
ALTER DATABASE your_database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
同样,也可以在表或列级别更改设置。
5. Security Configuration
在安装 MariaDB 后,安全性尚未完全加固。通过在投入生产前应用最小必要的安全设置,可以降低未授权访问和数据泄露的风险。本节介绍 MariaDB 基本的安全配置步骤。
Run mysql_secure_installation
MariaDB 提供了一个安全加固脚本,应在安装后立即运行:mysql_secure_installation。
使用以下命令运行它:
sudo mysql_secure_installation
运行时,会依次显示多个问题。以下是每个选项的含义。
- 设置(或更新)root 密码 → 为 MariaDB 管理员用户 “root” 设置密码。请使用强密码。
- 删除匿名用户 → 默认情况下可能存在“匿名”用户。这既不必要也有风险,建议删除。
- 禁止远程 root 登录 → 允许 root 直接从外部网络登录极其危险。大多数情况下,应设置为禁止。
- 删除 test 数据库 → 为测试创建的 “test” 数据库在多数情况下也没有必要。建议删除。
- 重新加载权限表 → 立即应用上述更改。确认选择 “Yes”。
回答完所有这些问题后,MariaDB 的默认初始安全状态将得到显著加强。
Firewall Configuration (If Needed)
MariaDB 通常使用 3306 端口进行通信。是否打开该端口取决于系统的使用方式。
- 本地使用或在独立服务器上 → 可以保持 3306 端口关闭。
- 允许外部访问(例如,从另一台服务器的应用连接) → 仅为所需的 IP 地址开放访问。
示例:在 Ubuntu 上使用 UFW 限制访问
sudo ufw allow from 192.168.0.10 to any port 3306
Create a User Other Than root (Recommended)
在生产环境中,最佳实践是创建并使用专用的用户账户,而不是管理员用户 “root”。以下是示例:
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON your_database.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
为每个应用使用单独的用户有助于在凭据泄露时将影响降至最低。
6. Verification
在安装 MariaDB、完成初始配置并应用安全措施后,最后一步是验证一切是否正常工作。本节说明如何确认连接并运行基本的 SQL 命令。
Connect to MariaDB
安装完成后,使用以下命令验证是否能够连接到 MariaDB:
sudo mariadb
或者,如果你想指定用户并提供密码:
mariadb -u root -p
系统提示时,输入在 mysql_secure_installation 中设置的密码。
如果登录成功,你会看到类似下面的提示符:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.6.16-MariaDB MariaDB Server
只要出现此提示,说明 MariaDB 正常运行,已成功连接。
创建数据库
接下来,作为一个简单的测试,创建一个数据库。
CREATE DATABASE testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
如果执行成功,说明数据库已创建且没有问题。
检查你拥有的数据库列表:
SHOW DATABASES;
如果出现 testdb,则说明创建成功。
创建表并插入数据
创建一个测试表并插入一些数据。
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');
※此示例用于验证使用 utf8mb4 存储的多字节(日文)文本是否正确保存。
检索数据
要确认插入的数据,运行以下查询。
SELECT * FROM users;
如果输出中显示了 Taro Tanaka 的信息,则可以确认数据库工作正常。
检查服务器信息
如果想查看 MariaDB 版本等基本信息,运行以下命令:
STATUS;
该命令会显示连接状态、服务器版本以及字符集配置等详细信息。
7. FAQ(常见问题解答)
在 Linux 环境下安装和使用 MariaDB 时,许多人会遇到常见的问题或疑问。提前了解处理方法可以更有信心。下面我们为初学者到中级用户整理了常见搜索点,以 FAQ 形式呈现。
Q1. 如何查看 MariaDB 版本?
连接到 MariaDB 后,运行以下命令即可查看版本:
SELECT VERSION();
或者,也可以直接在命令行中使用:
mariadb --version
示例输出:
mariadb Ver 15.1 Distrib 10.6.16-MariaDB, for Linux (x86_64)
Q2. 安装过程中出现 “Package not found” 应该怎么办?
检查以下几点:
- 软件包列表未更新 → 运行
sudo apt update或sudo yum update,然后重新尝试 - 官方 MariaDB 仓库未正确添加 → 检查仓库配置文件(如
/etc/apt/sources.list.d/或/etc/yum.repos.d/) - 你的发行版与 MariaDB 版本不兼容 → 重新查看 MariaDB 官方 Download page 上支持的版本
Q3. 如何卸载 MariaDB?
针对 Ubuntu/Debian:
sudo apt remove --purge mariadb-server mariadb-client -y
sudo apt autoremove -y
针对 CentOS/RHEL:
sudo yum remove mariadb-server -y
之后,如果还想删除数据和配置文件,执行以下命令:
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/my.cnf /etc/mysql
*如果有重要数据,请务必在删除前做好备份。
Q4. 如何备份和恢复数据库?
备份(生成转储文件):
mysqldump -u root -p your_database > backup.sql
恢复:
mysql -u root -p your_database < backup.sql
此方法简单常用,对 MariaDB 迁移和灾难恢复非常有帮助。
Q5. 为什么无法从服务器外部连接到 MariaDB?
可能的原因包括:
bind-address被设置为127.0.0.1→ 在/etc/mysql/my.cnf或/etc/my.cnf中,将其改为bind-address = 0.0.0.0(注意安全)- 端口 3306 被防火墙阻止 → 使用类似
sudo ufw allow 3306的命令打开该端口 - 用户不被允许进行远程连接 → 需要创建形如
user@'%'的用户


