首页/软件/MariaDB

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"展开,下面是面向新手的标准流程。

  1. 启动数据库服务

    • Linux:sudo systemctl start mariadb,如需开机自启执行 sudo systemctl enable mariadb。
    • Windows:安装向导完成后服务会自动启动,也可在"服务"管理器中启动名为 MariaDB 的服务。
    • macOS(Homebrew):brew services start mariadb。
  2. 执行安全初始化 运行 sudo mariadb-secure-installation(MariaDB 10.4 之前为 mysql_secure_installation),按提示设置 root 密码、删除匿名账号、禁止 root 远程登录并删除测试数据库。

  3. 连接数据库 在终端执行 mariadb -u root -p(旧版本命令为 mysql -u root -p),输入密码后即进入 SQL 交互界面。图形化用户可使用 DBeaver、HeidiSQL、Navicat 等第三方客户端连接,默认端口为 3306。

  4. 创建数据库与用户

    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;
    
  5. 建表与增删改查

    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;
    
  6. 备份与恢复 逻辑备份使用 mariadb-dump -u root -p demo > demo.sql(旧命令 mysqldump),恢复使用 mariadb -u root -p demo < demo.sql。数据量较大时建议使用 mariadb-backup 进行物理备份。

  7. 常用运维命令 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 #

  1. 下载 mariadb-13.1.1-winx64.msi 安装包。
  2. 双击运行,按向导选择安装类型(Typical / Custom)与安装目录。
  3. 在"设置 root 密码"页面输入并牢记 root 账户密码,勾选是否允许 root 远程访问。
  4. 保持默认端口 3306(若被占用可修改),继续下一步完成安装。
  5. 勾选"Enable Networking"与"Install as Service"可将 MariaDB 注册为 Windows 服务,实现开机自启。
  6. 安装完成后打开命令提示符,执行 mariadb -u root -p 验证是否连接成功。

若需要在无人值守环境下安装,MSI 支持静默参数(如 /qn),具体参数组合请参考官方文档;本次官网未说明该版本的静默安装参数细节。

Linux #

方式一:官方仓库安装(推荐,便于后续升级)

  1. 通过 MariaDB 官方仓库配置工具或手动添加仓库源(RPM 系用 dnf/yum,DEB 系用 apt)。
  2. 执行安装:
    • Debian/Ubuntu:sudo apt update && sudo apt install mariadb-server
    • RHEL/CentOS/Fedora:sudo dnf install MariaDB-server MariaDB-client
  3. 启动并设置开机自启:sudo systemctl enable --now mariadb。
  4. 运行 sudo mariadb-secure-installation 完成安全初始化。

方式二:通用二进制包安装(对应本次下载的 tar.gz)

  1. 解压安装包:tar -xzf mariadb-13.1.1-linux-systemd-x86_64.tar.gz。
  2. 将解压目录移动到正式路径(如 /usr/local/mariadb),建议创建独立的数据目录与数据用户。
  3. 初始化数据目录:./scripts/mariadb-install-db --user=mysql --basedir=/usr/local/mariadb --datadir=/var/lib/mysql。
  4. 将包内提供的 systemd 服务文件复制到 /usr/lib/systemd/system/,执行 systemctl daemon-reload。
  5. 启动服务并执行 mariadb-secure-installation。

macOS #

  1. 使用 Homebrew 安装:brew install mariadb。
  2. 启动服务:brew services start mariadb。
  3. 运行安全初始化:mariadb-secure-installation。
  4. 连接验证:mariadb -u root -p。

也可以从官网下载 macOS 的 .tar.gz 或 .dmg 安装包手动部署,具体可用格式官网未说明,请以官网下载页为准。

MariaDB 如何卸载? #

Windows #

  1. 打开"设置 → 应用 → 已安装的应用"(或控制面板的"程序和功能")。
  2. 找到 MariaDB 13.1.1 (x64),点击"卸载"并确认。
  3. 按向导完成卸载后,手动删除残留目录,通常为 C:\Program Files\MariaDB 13.1。
  4. 数据默认存放在安装目录下的 data 文件夹中,如不再需要请一并删除;若想保留数据以便未来恢复,请提前备份该目录。
  5. 若卸载前注册过 MariaDB 系统服务,可在管理员命令提示符中执行 sc delete MariaDB 清理残留服务项。

Linux #

Debian/Ubuntu

  1. sudo systemctl stop mariadb
  2. sudo apt remove --purge mariadb-server mariadb-client
  3. sudo apt autoremove
  4. 手动清理残留:sudo rm -rf /var/lib/mysql /etc/mysql /var/log/mysql

RHEL/CentOS/Fedora

  1. sudo systemctl stop mariadb
  2. sudo dnf remove MariaDB-server MariaDB-client
  3. 手动清理残留: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 #

  1. 停止服务:brew services stop mariadb。
  2. 卸载程序:brew uninstall mariadb。
  3. 清理残留数据与配置:rm -rf /usr/local/var/mysql(Intel 芯片)或 /opt/homebrew/var/mysql(Apple Silicon),以及 /usr/local/etc/my.cnf 等配置文件。

提示:无论哪个平台,卸载前都建议先用 mariadb-dump 导出重要数据,避免误删造成不可逆的损失。

相关标签
MariaDB开源数据库关系型数据库MySQL 替代品数据库服务器MariaDB 下载MariaDB 安装SQL 数据库数据库管理