外观
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.dHomebrew 安装(推荐)
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 update3. 安装 MariaDB
使用以下命令安装 MariaDB:
bash
# 安装最新稳定版
brew install mariadb
# 安装特定版本(如 10.6)
brew install mariadb@10.64. 启动 MariaDB 服务
bash
# 启动 MariaDB 服务(当前会话)
brew services start mariadb
# 或使用系统自带的启动命令
mysql.server start5. 安全配置
安装完成后,需要进行基本的安全配置,包括设置 root 密码、删除匿名用户等:
bash
mysql_secure_installation按照提示完成以下设置:
- 设置 root 密码
- 删除匿名用户
- 禁止 root 远程登录
- 删除测试数据库
DMG 安装包安装
1. 下载 DMG 安装包
从 MariaDB 官方网站下载适合 macOS 的 DMG 安装包:
- 访问 MariaDB 下载页面
- 选择版本(推荐 LTS 版本,如 10.6、10.11)
- 选择操作系统为 macOS
- 下载 DMG 安装包(如
mariadb-10.11.6-macos12-arm64.dmg)
2. 运行安装程序
- 双击下载的 DMG 安装包,挂载磁盘镜像
- 双击
MariaDB-10.11.6.pkg开始安装 - 在欢迎页面,点击「继续」
- 接受许可协议,点击「继续」→「同意」
- 选择安装类型,点击「继续」
- 输入管理员密码,点击「安装」
- 安装完成后,点击「关闭」
3. 配置环境变量
DMG 安装包默认安装到 /usr/local/mysql 目录,需要将其添加到系统环境变量中:
打开终端,编辑 shell 配置文件(根据使用的 shell 选择):
- Bash:
~/.bash_profile或~/.bashrc - Zsh:
~/.zshrc
- Bash:
添加以下内容:
bashexport PATH="/usr/local/mysql/bin:$PATH"重新加载配置文件:
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 restart5. 安全配置
bash
mysql_secure_installation源码编译安装
对于需要自定义配置或特定版本的场景,可以选择源码编译安装。
1. 安装依赖
bash
# 安装 Xcode Command Line Tools
xcode-select --install
# 安装编译依赖
brew install cmake openssl zlib ncurses2. 下载源码
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.63. 编译安装
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 install4. 配置和初始化
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 ~/.zshrc5. 启动和停止服务
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基本测试
登录 MariaDB:
bashmysql -u root -p查看 MariaDB 版本:
sqlSELECT VERSION();创建测试数据库:
sqlCREATE DATABASE test_db;创建测试表:
sqlUSE test_db; CREATE TABLE test_table (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100));插入测试数据:
sqlINSERT INTO test_table (name) VALUES ('test');查询测试数据:
sqlSELECT * FROM test_table;删除测试数据库:
sqlDROP DATABASE test_db;退出 MariaDB:
sqlEXIT;
版本差异
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 密码怎么办?
解决方案:
停止 MariaDB 服务:
bashbrew services stop mariadb # 或 mysql.server stop以跳过授权表的方式启动 MariaDB:
bashmysqld --skip-grant-tables --skip-networking新开一个终端窗口,登录 MariaDB:
bashmysql -u root重置 root 密码:
sqlUSE mysql; UPDATE user SET password=PASSWORD('new_password') WHERE User='root'; FLUSH PRIVILEGES; EXIT;停止并重启 MariaDB 服务:
bashbrew services restart mariadb # 或 mysql.server restart
3. 安装时提示端口被占用怎么办?
解决方案:
查看哪个程序占用了 3306 端口:
bashlsof -i :3306根据 PID 终止程序:
bashkill -9 <PID>或修改 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. 如何修改数据目录?
解决方案:
- 停止 MariaDB 服务
- 复制现有数据目录到新位置:bash
cp -a /usr/local/var/mysql /new/data/dir - 修改配置文件中的 datadir 参数:ini
[mysqld] datadir = /new/data/dir - 设置权限:bash
chown -R $(whoami) /new/data/dir - 重启 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.dDMG 安装的卸载方法:
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 数据库。
