MariaDB:开源关系型数据库管理系统 #
MariaDB 是什么? #
MariaDB 是一款开源的关系型数据库管理系统(RDBMS),由 MySQL 的原始开发者 Michael "Monty" Widenius 及其团队在 2009 年发起,作为 MySQL 的社区分支独立发展。
它完全兼容 MySQL 的通信协议、SQL 语法和常用客户端工具,因此在绝大多数场景下可以直接替换 MySQL 使用,而无需修改应用程序代码。MariaDB 采用 GPLv2 开源协议发布,提供 InnoDB、Aria、MyRocks、ColumnStore 等多种存储引擎,并支持主从复制、Galera 同步多主集群与 MaxScale 数据库代理等高可用方案。无论是个人开发者的本地测试环境,还是互联网企业的高并发生产数据库,MariaDB 都能胜任,尤其适合希望摆脱单一商业数据库绑定、追求可控成本与数据自主权的团队。
MariaDB 官方地址为 https://mariadb.com ,官网提供文档、下载、商业支持与企业版订阅等入口;具体版本政策与商业定价官网未说明,请以官网最新页面为准。
MariaDB 有哪些亮点特色? #
- 完全开源,GPLv2 授权:核心代码以 GPLv2 协议开源发布,可自由使用、修改和分发,没有授权费用与厂商锁定风险,个人与企业均可放心部署。
- 与 MySQL 高度兼容:兼容 MySQL 的通信协议、SQL 语法、客户端驱动和生态工具,迁移时通常只需替换连接配置,应用程序几乎无需改动。
- 多种存储引擎可选:内置 InnoDB(默认事务引擎)、Aria、MyISAM、MyRocks、ColumnStore、Spider 等引擎,可针对事务处理、高压缩存储或列式分析等不同场景灵活选型。
- 强大的 SQL 能力:支持窗口函数、公用表表达式(CTE)、JSON 函数、序列、虚拟列以及系统版本化表(System-versioned tables),便于实现时态数据查询与复杂分析。
- 企业级高可用方案:提供 Galera Cluster 同步多主复制、传统主从/半同步复制以及 MaxScale 数据库代理与读写分离能力,满足高并发与容灾需求。
- 完善的安全与权限体系:支持角色(Roles)、细粒度权限控制、PAM/LDAP 等外部认证插件与审计插件,方便企业统一管理账号与合规审计。
- 跨平台覆盖主流系统:官方提供 Linux、Windows、macOS 的安装包与仓库源,既有 MSI 图形化安装程序,也有通用二进制压缩包与包管理器安装方式。
- 活跃社区与商业支持双轨:MariaDB Foundation 负责开源社区与标准维护,MariaDB plc 提供企业版订阅、技术支持与托管服务,用户可自由选择纯社区方案或付费保障。
说明:部分高级特性(如透明数据加密、部分审计与备份工具)属于 MariaDB Enterprise 商业版本范畴,社区版与企业版的完整功能差异请以官网说明为准。
免费下载 MariaDB #
以下为 MariaDB 13.1.1 的各平台安装包,点击链接即可下载。官方下载页的直达链接与校验信息官网未说明,此处提供网盘下载地址:
| 文件名 | 描述 | 大小 | 下载 |
|---|---|---|---|
| mariadb-13.1.1-linux-systemd-x86_64.tar.gz | Linux x86_64 通用二进制压缩包,内置 systemd 服务配置文件,适合手动部署或无法使用包管理器的环境 | 484.2 MB | 夸克网盘 |
| mariadb-13.1.1-winx64.msi | Windows 64 位 MSI 安装包,可视化向导安装,自动注册系统服务 | 89.1 MB | 夸克网盘 |
提示:下载完成后建议核对文件大小与官方公布的校验值(官网未说明本次文件的 MD5/SHA256 值),并优先在测试环境验证后再用于生产。
MariaDB 如何使用? #
MariaDB 的使用围绕"启动服务 → 连接客户端 → 执行 SQL"展开,下面是面向新手的标准流程。
-
启动数据库服务
- Linux:
sudo systemctl start mariadb,如需开机自启执行sudo systemctl enable mariadb。 - Windows:安装向导完成后服务会自动启动,也可在"服务"管理器中启动名为
MariaDB的服务。 - macOS(Homebrew):
brew services start mariadb。
- Linux:
-
执行安全初始化 运行
sudo mariadb-secure-installation(MariaDB 10.4 之前为mysql_secure_installation),按提示设置 root 密码、删除匿名账号、禁止 root 远程登录并删除测试数据库。 -
连接数据库 在终端执行
mariadb -u root -p(旧版本命令为mysql -u root -p),输入密码后即进入 SQL 交互界面。图形化用户可使用 DBeaver、HeidiSQL、Navicat 等第三方客户端连接,默认端口为 3306。 -
创建数据库与用户
CREATE DATABASE demo CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON demo.* TO 'appuser'@'localhost'; FLUSH PRIVILEGES; -
建表与增删改查
USE demo; CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), created_at DATETIME DEFAULT CURRENT_TIMESTAMP); INSERT INTO users (name) VALUES ('Alice'); SELECT * FROM users; -
备份与恢复 逻辑备份使用
mariadb-dump -u root -p demo > demo.sql(旧命令mysqldump),恢复使用mariadb -u root -p demo < demo.sql。数据量较大时建议使用mariadb-backup进行物理备份。 -
常用运维命令
SHOW DATABASES;查看数据库列表,SHOW STATUS;查看运行状态,SHOW VARIABLES LIKE 'datadir';查看数据目录位置。
MariaDB 的常见问题? #
MariaDB 和 MySQL 有什么区别? MariaDB 由 MySQL 原始开发团队创建,起源于 MySQL 的社区分支,两者在协议、语法和客户端工具层面高度兼容。MariaDB 完全开源(GPLv2),在窗口函数、JSON、存储引擎选择等方面持续迭代,并引入了一些 MySQL 社区版没有的特性;随着版本演进,两者在个别语法和功能上的差异会逐渐增多,迁移前建议做兼容性测试。
MariaDB 是免费的吗? 社区版基于 GPLv2 完全开源免费,可自由用于商业项目。MariaDB plc 另外提供企业版订阅、技术支持与托管服务,属于付费范畴。具体收费模式与价格,官网未说明,需以官网最新报价为准。
可以从 MySQL 迁移到 MariaDB 吗?
多数情况下可以。由于二者协议和语法兼容,通常只需更改应用程序的连接配置,并通过 mariadb-dump 导出 MySQL 数据后导入 MariaDB 即可。但如果应用使用了 MySQL 独有的语法或特性(如部分 JSON 与权限相关语法),需要逐个排查调整。
忘记 root 密码怎么办?
可以停止 MariaDB 服务后,以 --skip-grant-tables 参数启动,再通过 SQL 修改 root 密码并刷新权限;修改完成后重启服务恢复正常模式。生产环境操作前务必确认已有备份,并尽量避免让数据库长时间处于无鉴权状态。
MariaDB 支持哪些编程语言和驱动? MariaDB 兼容 MySQL 协议,因此 PHP(PDO/mysqli)、Java(JDBC/MariaDB Connector/J)、Python(PyMySQL/mariadb)、Go、Node.js、.NET、C/C++ 等主流语言和框架都可以直接连接使用,官方也提供 Connector/C、Connector/J、Connector/ODBC 等驱动。
MariaDB 的数据文件存放在哪里?
Linux 下默认数据目录通常为 /var/lib/mysql,配置文件位于 /etc/my.cnf 或 /etc/mysql/ 下;Windows 下数据目录默认在安装路径的 data 子目录中。可通过 SHOW VARIABLES LIKE 'datadir'; 精确查询。备份时应同时备份数据目录与配置文件。
MariaDB 的版本维护周期是多久? MariaDB 惯例上为 GA(正式发布)版本提供较长时间的维护更新(官方通常表述为 5 年左右的维护周期),并区分为稳定版与长期支持版本。具体到某一个版本的维护起止时间,官网未说明本次下载包(13.1.1)的对应政策,请查阅官网 Release Notes 与版本生命周期页面。
MariaDB 如何安装? #
Windows #
- 下载
mariadb-13.1.1-winx64.msi安装包。 - 双击运行,按向导选择安装类型(Typical / Custom)与安装目录。
- 在"设置 root 密码"页面输入并牢记 root 账户密码,勾选是否允许 root 远程访问。
- 保持默认端口 3306(若被占用可修改),继续下一步完成安装。
- 勾选"Enable Networking"与"Install as Service"可将 MariaDB 注册为 Windows 服务,实现开机自启。
- 安装完成后打开命令提示符,执行
mariadb -u root -p验证是否连接成功。
若需要在无人值守环境下安装,MSI 支持静默参数(如
/qn),具体参数组合请参考官方文档;本次官网未说明该版本的静默安装参数细节。
Linux #
方式一:官方仓库安装(推荐,便于后续升级)
- 通过 MariaDB 官方仓库配置工具或手动添加仓库源(RPM 系用
dnf/yum,DEB 系用apt)。 - 执行安装:
- Debian/Ubuntu:
sudo apt update && sudo apt install mariadb-server - RHEL/CentOS/Fedora:
sudo dnf install MariaDB-server MariaDB-client
- Debian/Ubuntu:
- 启动并设置开机自启:
sudo systemctl enable --now mariadb。 - 运行
sudo mariadb-secure-installation完成安全初始化。
方式二:通用二进制包安装(对应本次下载的 tar.gz)
- 解压安装包:
tar -xzf mariadb-13.1.1-linux-systemd-x86_64.tar.gz。 - 将解压目录移动到正式路径(如
/usr/local/mariadb),建议创建独立的数据目录与数据用户。 - 初始化数据目录:
./scripts/mariadb-install-db --user=mysql --basedir=/usr/local/mariadb --datadir=/var/lib/mysql。 - 将包内提供的 systemd 服务文件复制到
/usr/lib/systemd/system/,执行systemctl daemon-reload。 - 启动服务并执行
mariadb-secure-installation。
macOS #
- 使用 Homebrew 安装:
brew install mariadb。 - 启动服务:
brew services start mariadb。 - 运行安全初始化:
mariadb-secure-installation。 - 连接验证:
mariadb -u root -p。
也可以从官网下载 macOS 的 .tar.gz 或 .dmg 安装包手动部署,具体可用格式官网未说明,请以官网下载页为准。
MariaDB 如何卸载? #
Windows #
- 打开"设置 → 应用 → 已安装的应用"(或控制面板的"程序和功能")。
- 找到
MariaDB 13.1.1 (x64),点击"卸载"并确认。 - 按向导完成卸载后,手动删除残留目录,通常为
C:\Program Files\MariaDB 13.1。 - 数据默认存放在安装目录下的
data文件夹中,如不再需要请一并删除;若想保留数据以便未来恢复,请提前备份该目录。 - 若卸载前注册过 MariaDB 系统服务,可在管理员命令提示符中执行
sc delete MariaDB清理残留服务项。
Linux #
Debian/Ubuntu
sudo systemctl stop mariadbsudo apt remove --purge mariadb-server mariadb-clientsudo apt autoremove- 手动清理残留:
sudo rm -rf /var/lib/mysql /etc/mysql /var/log/mysql
RHEL/CentOS/Fedora
sudo systemctl stop mariadbsudo dnf remove MariaDB-server MariaDB-client- 手动清理残留:
sudo rm -rf /var/lib/mysql /etc/my.cnf /etc/my.cnf.d /var/log/mariadb
通用二进制包部署的实例
停止服务后删除解压目录,并手动移除 systemd 服务文件(如 /usr/lib/systemd/system/mariadb.service),再执行 systemctl daemon-reload。
注意:
/var/lib/mysql目录保存全部数据库文件,卸载时通常不会被自动删除。如果希望彻底清理,需要手动移除;如果日后可能重新安装并复用数据,请先完整备份该目录。
macOS #
- 停止服务:
brew services stop mariadb。 - 卸载程序:
brew uninstall mariadb。 - 清理残留数据与配置:
rm -rf /usr/local/var/mysql(Intel 芯片)或/opt/homebrew/var/mysql(Apple Silicon),以及/usr/local/etc/my.cnf等配置文件。
提示:无论哪个平台,卸载前都建议先用
mariadb-dump导出重要数据,避免误删造成不可逆的损失。
