Skip to content

MariaDB 在 macOS 上安装

MariaDB 支持在 macOS 操作系统上安装,提供了多种安装方式,包括 Homebrew、DMG 安装包和源码编译。本文将详细介绍 MariaDB 在 macOS 上的安装、配置和最佳实践。

安装前准备

系统要求

  • 操作系统:macOS 10.14 (Mojave) 或更高版本
  • CPU:至少 2 核,推荐 4 核以上
  • 内存:至少 4GB,推荐 8GB 以上
  • 磁盘空间:至少 10GB 可用空间
  • 权限:需要管理员权限进行安装

检查现有 MariaDB/MySQL 安装

在安装前,需要检查系统中是否已经安装了 MariaDB 或 MySQL,避免冲突:

bash
# 检查是否安装了 MariaDB
which mariadb mariadb-server mysql mysql-server 2>/dev/null

# 检查 MariaDB/MySQL 服务状态
brew services list | grep -E 'mariadb|mysql' 2>/dev/null

# 检查已安装的包
brew list | grep -E 'mariadb|mysql' 2>/dev/null

如果已经安装了 MariaDB 或 MySQL,需要先卸载现有版本,避免冲突:

bash
# 使用 Homebrew 卸载
brew uninstall mariadb mysql 2>/dev/null

# 删除残留文件
sudo rm -rf /usr/local/var/mysql /usr/local/etc/my.cnf /usr/local/etc/my.cnf.d

Homebrew 安装(推荐)

Homebrew 是 macOS 上的包管理工具,使用 Homebrew 安装 MariaDB 是推荐的方式,因为可以方便地管理和更新。

1. 安装 Homebrew

如果还没有安装 Homebrew,可以通过以下命令安装:

bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. 更新 Homebrew

安装前,建议更新 Homebrew 到最新版本:

bash
brew update

3. 安装 MariaDB

使用以下命令安装 MariaDB:

bash
# 安装最新稳定版
brew install mariadb

# 安装特定版本(如 10.6)
brew install mariadb@10.6

4. 启动 MariaDB 服务

bash
# 启动 MariaDB 服务(当前会话)
brew services start mariadb

# 或使用系统自带的启动命令
mysql.server start

5. 安全配置

安装完成后,需要进行基本的安全配置,包括设置 root 密码、删除匿名用户等:

bash
mysql_secure_installation

按照提示完成以下设置:

  • 设置 root 密码
  • 删除匿名用户
  • 禁止 root 远程登录
  • 删除测试数据库

DMG 安装包安装

1. 下载 DMG 安装包

从 MariaDB 官方网站下载适合 macOS 的 DMG 安装包:

  1. 访问 MariaDB 下载页面
  2. 选择版本(推荐 LTS 版本,如 10.6、10.11)
  3. 选择操作系统为 macOS
  4. 下载 DMG 安装包(如 mariadb-10.11.6-macos12-arm64.dmg

2. 运行安装程序

  1. 双击下载的 DMG 安装包,挂载磁盘镜像
  2. 双击 MariaDB-10.11.6.pkg 开始安装
  3. 在欢迎页面,点击「继续」
  4. 接受许可协议,点击「继续」→「同意」
  5. 选择安装类型,点击「继续」
  6. 输入管理员密码,点击「安装」
  7. 安装完成后,点击「关闭」

3. 配置环境变量

DMG 安装包默认安装到 /usr/local/mysql 目录,需要将其添加到系统环境变量中:

  1. 打开终端,编辑 shell 配置文件(根据使用的 shell 选择):

    • Bash:~/.bash_profile~/.bashrc
    • Zsh:~/.zshrc
  2. 添加以下内容:

    bash
    export PATH="/usr/local/mysql/bin:$PATH"
  3. 重新加载配置文件:

    bash
    # Bash

source ~/.bash_profile

Zsh

source ~/.zshrc


### 4. 启动 MariaDB 服务

```bash
# 启动 MariaDB 服务
sudo /usr/local/mysql/support-files/mysql.server start

# 停止 MariaDB 服务
sudo /usr/local/mysql/support-files/mysql.server stop

# 重启 MariaDB 服务
sudo /usr/local/mysql/support-files/mysql.server restart

5. 安全配置

bash
mysql_secure_installation

源码编译安装

对于需要自定义配置或特定版本的场景,可以选择源码编译安装。

1. 安装依赖

bash
# 安装 Xcode Command Line Tools
xcode-select --install

# 安装编译依赖
brew install cmake openssl zlib ncurses

2. 下载源码

bash
# 创建源码目录
mkdir -p ~/src/mariadb
cd ~/src/mariadb

# 下载源码包
wget https://downloads.mariadb.org/interstitial/mariadb-10.11.6/source/mariadb-10.11.6.tar.gz

# 解压源码包
tar -zxvf mariadb-10.11.6.tar.gz
cd mariadb-10.11.6

3. 编译安装

bash
# 创建编译目录
mkdir build
cd build

# 配置编译选项
cmake .. \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb \
  -DMYSQL_DATADIR=/usr/local/var/mysql \
  -DSYSCONFDIR=/usr/local/etc \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  -DWITH_READLINE=1 \
  -DWITH_SSL=system \
  -DWITH_ZLIB=system \
  -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
  -DDEFAULT_CHARSET=utf8mb4 \
  -DDEFAULT_COLLATION=utf8mb4_unicode_ci

# 编译(使用 4 个核心)
make -j4

# 安装
sudo make install

4. 配置和初始化

bash
# 创建数据目录
sudo mkdir -p /usr/local/var/mysql
sudo chown -R $(whoami) /usr/local/var/mysql

# 初始化数据库
cd /usr/local/mariadb
./scripts/mysql_install_db --datadir=/usr/local/var/mysql

# 创建配置文件
sudo cp support-files/my-default.cnf /usr/local/etc/my.cnf

# 配置环境变量
echo 'export PATH="/usr/local/mariadb/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

5. 启动和停止服务

bash
# 启动服务
mysql.server start

# 停止服务
mysql.server stop

# 重启服务
mysql.server restart

安装后配置

配置文件优化

MariaDB 的主要配置文件位置:

  • Homebrew 安装:/usr/local/etc/my.cnf/usr/local/etc/my.cnf.d/
  • DMG 安装:/usr/local/mysql/my.cnf
  • 源码编译:/usr/local/etc/my.cnf

根据系统资源和业务需求,优化配置文件:

ini
[mysqld]
# 基本设置
port = 3306
datadir = /usr/local/var/mysql
socket = /tmp/mysql.sock
pid-file = /usr/local/var/mysql/mysql.pid

# 字符集设置
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

# 内存设置
innodb_buffer_pool_size = 512M
key_buffer_size = 64M
max_allowed_packet = 64M

# 连接设置
max_connections = 100
wait_timeout = 600

# 日志设置
log_error = /usr/local/var/mysql/error.log
slow_query_log = 1
slow_query_log_file = /usr/local/var/mysql/slow.log
long_query_time = 2

# macOS 特有的设置
innodb_flush_method = fsync
skip_name_resolve = 1

启动和停止服务

使用 Homebrew 服务

bash
# 启动服务
brew services start mariadb

# 停止服务
brew services stop mariadb

# 重启服务
brew services restart mariadb

# 查看服务状态
brew services list | grep mariadb

使用系统命令

bash
# 启动服务
mysql.server start

# 停止服务
mysql.server stop

# 重启服务
mysql.server restart

# 查看服务状态
mysql.server status

基本测试

  1. 登录 MariaDB

    bash
    mysql -u root -p
  2. 查看 MariaDB 版本

    sql
    SELECT VERSION();
  3. 创建测试数据库

    sql
    CREATE DATABASE test_db;
  4. 创建测试表

    sql
    USE test_db;
    CREATE TABLE test_table (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100));
  5. 插入测试数据

    sql
    INSERT INTO test_table (name) VALUES ('test');
  6. 查询测试数据

    sql
    SELECT * FROM test_table;
  7. 删除测试数据库

    sql
    DROP DATABASE test_db;
  8. 退出 MariaDB

    sql
    EXIT;

版本差异

MariaDB 10.0+

  • 引入了 Aria 存储引擎
  • 增强了 InnoDB 性能
  • 支持 Galera Cluster

MariaDB 10.1+

  • 引入了 Virtual Columns
  • 支持动态列功能
  • 增强了 Galera Cluster 支持

MariaDB 10.2+

  • 支持 JSON 数据类型
  • 增强了 InnoDB 功能
  • 支持降序索引

MariaDB 10.3+

  • 引入了 Sequence 对象
  • 增强了安全性
  • 支持不可见索引

MariaDB 10.4+

  • 默认存储引擎改为 InnoDB
  • 增强了审计功能
  • 支持更多的加密选项

MariaDB 10.5+

  • 引入了 Roles 功能
  • 增强了性能监控
  • 支持更多的存储引擎

常见问题(FAQ)

1. 如何查看 MariaDB 版本?

方法

bash
# 命令行查看
mysql -V

# 登录后查看
SELECT VERSION();

2. 忘记 root 密码怎么办?

解决方案

  1. 停止 MariaDB 服务:

    bash
    brew services stop mariadb
    # 或
    mysql.server stop
  2. 以跳过授权表的方式启动 MariaDB:

    bash
    mysqld --skip-grant-tables --skip-networking
  3. 新开一个终端窗口,登录 MariaDB:

    bash
    mysql -u root
  4. 重置 root 密码:

    sql
    USE mysql;
    UPDATE user SET password=PASSWORD('new_password') WHERE User='root';
    FLUSH PRIVILEGES;
    EXIT;
  5. 停止并重启 MariaDB 服务:

    bash
    brew services restart mariadb
    # 或
    mysql.server restart

3. 安装时提示端口被占用怎么办?

解决方案

  1. 查看哪个程序占用了 3306 端口:

    bash
    lsof -i :3306
  2. 根据 PID 终止程序:

    bash
    kill -9 <PID>
  3. 或修改 MariaDB 端口,在配置文件中添加:

    ini
    [mysqld]
    port = 3307

4. 无法启动 MariaDB 服务怎么办?

解决方案

  • 检查配置文件语法是否正确
  • 检查数据目录权限是否正确
  • 查看错误日志,定位问题原因:
    bash
    tail -f /usr/local/var/mysql/error.log
  • 尝试重新初始化数据库

5. 如何允许 root 用户远程登录?

解决方案

bash
# 登录 MariaDB
mysql -u root -p

# 允许 root 用户远程登录
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

# 或者只允许特定 IP 登录
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

6. 如何修改数据目录?

解决方案

  1. 停止 MariaDB 服务
  2. 复制现有数据目录到新位置:
    bash
    cp -a /usr/local/var/mysql /new/data/dir
  3. 修改配置文件中的 datadir 参数:
    ini
    [mysqld]
    datadir = /new/data/dir
  4. 设置权限:
    bash
    chown -R $(whoami) /new/data/dir
  5. 重启 MariaDB 服务

7. 如何卸载 MariaDB?

Homebrew 安装的卸载方法

bash
# 停止服务
brew services stop mariadb

# 卸载
brew uninstall mariadb

# 删除残留文件
sudo rm -rf /usr/local/var/mysql /usr/local/etc/my.cnf /usr/local/etc/my.cnf.d

DMG 安装的卸载方法

bash
# 停止服务
sudo /usr/local/mysql/support-files/mysql.server stop

# 删除安装目录
sudo rm -rf /usr/local/mysql

# 删除配置文件和数据目录
sudo rm -rf /usr/local/var/mysql /etc/my.cnf

# 删除环境变量
# 编辑 ~/.zshrc 或 ~/.bash_profile,删除相关行

8. 如何备份和恢复 MariaDB 数据库?

备份数据库

bash
mysqldump -u root -p --all-databases > backup.sql

恢复数据库

bash
mysql -u root -p < backup.sql

最佳实践

1. 使用 Homebrew 安装

  • Homebrew 提供最新版本和自动更新
  • 方便管理和卸载
  • 自动处理依赖关系

2. 安装位置选择

  • 建议使用默认安装路径,便于管理
  • 数据目录和日志目录应放在有足够空间的磁盘上

3. 安全配置

  • 设置强密码:使用字母、数字和特殊字符组合
  • 删除匿名用户和测试数据库
  • 限制 root 用户登录权限,避免远程登录
  • 定期更新 MariaDB 到最新版本,应用安全补丁

4. 性能优化

  • 根据系统资源调整配置文件参数
  • 启用慢查询日志,定期分析和优化查询
  • 定期优化和修复表:OPTIMIZE TABLE table_name;

5. 备份策略

  • 定期备份数据库,包括全量备份和增量备份
  • 测试备份的可用性,确保可以成功恢复
  • 存储备份到安全的位置,包括本地和远程存储

6. 监控和维护

  • 启用错误日志和慢查询日志
  • 定期查看日志,及时发现和解决问题
  • 使用监控工具,如 MySQL Workbench、Prometheus + Grafana 等
  • 定期进行数据库健康检查

7. 自动化部署

对于批量部署场景,可以使用自动化工具:

  • 使用 Ansible、Chef、Puppet 等配置管理工具
  • 使用容器化部署,如 Docker

总结

MariaDB 在 macOS 上的安装方法有多种,其中使用 Homebrew 安装是推荐的方式,因为可以方便地管理和更新。DMG 安装包适合需要图形化安装的用户,而源码编译安装适合需要自定义配置的场景。

安装后,需要进行基本的安全设置、配置文件优化和性能调优,确保 MariaDB 能够稳定、高效地运行。同时,需要定期更新、备份数据和监控系统状态,确保数据库的安全性和可靠性。

通过本文的介绍,相信您已经掌握了 MariaDB 在 macOS 上的安装和基本配置方法,能够在实际生产环境中顺利部署 MariaDB 数据库。