外观
SQLite 在 macOS 上安装
本文档详细介绍 SQLite 在 macOS 系统上的安装方法和配置步骤。
安装方法
使用 Homebrew 安装
Homebrew 是 macOS 上最流行的包管理器,使用它可以轻松安装 SQLite:
bash
brew update
brew install sqlite3使用 MacPorts 安装
bash
sudo port install sqlite3系统内置 SQLite
macOS 系统自带 SQLite,但版本可能较旧。可以通过以下命令查看内置版本:
bash
sqlite3 --version从源代码编译安装
- 下载最新版本的 SQLite 源代码:
bash
wget https://www.sqlite.org/2023/sqlite-autoconf-3440200.tar.gz
tar -xzvf sqlite-autoconf-3440200.tar.gz
cd sqlite-autoconf-3440200- 编译并安装:
bash
./configure
make
sudo make install验证安装
安装完成后,可以通过以下命令验证 SQLite 是否安装成功:
bash
sqlite3 --version预期输出:
sqlite3 3.44.0 2023-11-01 11:23:50 93525403c12143aee0ff8a577399e94070845ebd9b9725354437d16569df19a5使用方法
启动 SQLite 命令行工具
在终端中运行:
bash
sqlite3创建并连接数据库
bash
sqlite3 mydatabase.db版本差异与注意事项
macOS 内置 SQLite 版本差异
| macOS 版本 | 内置 SQLite 版本 | 主要限制 |
|---|---|---|
| Sonoma (14.x) | 3.42.0 | 较新,支持大多数现代特性 |
| Ventura (13.x) | 3.39.5 | 支持JSON和WAL模式 |
| Monterey (12.x) | 3.36.0 | 支持基本WAL模式 |
| Big Sur (11.x) | 3.32.3 | 支持WAL模式,但缺少一些新特性 |
| Catalina (10.15) | 3.28.0 | 不支持JSON1扩展 |
| Mojave (10.14) | 3.24.0 | 不支持WAL模式优化 |
生产环境安装建议
- 避免使用系统内置版本:系统内置版本通常较旧,缺少新特性和安全补丁
- 使用 Homebrew 管理:便于升级和管理多个版本
- 设置正确的 PATH:确保使用的是最新安装的版本,而不是系统内置版本
- 考虑静态链接:对于生产应用,建议静态链接SQLite,避免依赖外部库
- 定期更新:关注SQLite官方发布的安全更新
配置与优化
环境变量配置
bash
# 添加 Homebrew 安装的 SQLite 到 PATH(添加到 ~/.zshrc 或 ~/.bash_profile)
export PATH="/usr/local/opt/sqlite/bin:$PATH"
# 设置默认缓存大小(KB)
export SQLITE_DEFAULT_CACHE_SIZE=8192
# 设置默认页大小(字节)
export SQLITE_DEFAULT_PAGE_SIZE=4096编译时配置选项
从源代码编译时,可以使用以下优化选项:
bash
./configure --enable-threadsafe --enable-json1 --enable-session --enable-fts5 --enable-R-tree
make
sudo make installmacOS 特定优化
- 使用 APFS 文件系统:APFS 对 SQLite 性能有较好的支持
- 禁用文件系统压缩:对 SQLite 数据库文件禁用压缩,避免性能问题
- 合理设置文件权限:确保数据库文件具有适当的读写权限
- 考虑使用 SSD:SQLite 在 SSD 上性能更好
使用 SQLite 进行开发
在 Xcode 项目中使用 SQLite
- 添加 SQLite 框架:在 Xcode 项目中添加 libsqlite3.tbd 框架
- 使用 FMDB 封装:考虑使用 FMDB 等第三方封装库,简化 SQLite 操作
- 设置正确的数据库路径:在 iOS/macOS 应用中,将数据库文件存储在合适的位置
常见开发工具
| 工具 | 类型 | 特点 |
|---|---|---|
| DB Browser for SQLite | GUI | 开源免费,功能全面 |
| Navicat | GUI | 商业化,功能强大 |
| DBeaver | GUI | 支持多种数据库,开源免费 |
| sqlite3 | CLI | 命令行工具,轻量级 |
安装后验证与测试
验证版本
bash
# 验证安装的版本
sqlite3 --version
# 确保使用的是 Homebrew 安装的版本
which sqlite3
# 预期输出: /usr/local/opt/sqlite/bin/sqlite3功能测试
bash
# 创建测试数据库
sqlite3 test.db "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT);"
# 测试 JSON 功能
sqlite3 test.db "SELECT json('{\"name\": \"Test\"}');"
# 测试 WAL 模式
sqlite3 test.db "PRAGMA journal_mode=WAL;"常见问题(FAQ)
Q: 如何升级系统内置的 SQLite?
A: 不建议直接升级系统内置版本,可能会破坏系统稳定性。建议使用 Homebrew 或从源代码编译安装最新版本,并将其路径添加到环境变量中。
Q: 如何在 macOS 上使用 SQLite GUI 工具?
A: 推荐使用 DB Browser for SQLite(开源免费)、Navicat 或 DBeaver 等工具。可以通过 Homebrew 安装 DB Browser for SQLite:
bash
brew install --cask db-browser-for-sqliteQ: 安装过程中遇到权限问题怎么办?
A: 使用 sudo 命令获取管理员权限,或检查当前用户的权限设置。对于 Homebrew 安装,确保 Homebrew 已正确安装且当前用户有写入权限。
Q: 如何检查当前使用的是哪个 SQLite 版本?
A: 使用 sqlite3 --version 命令查看版本,使用 which sqlite3 命令查看命令路径。
Q: 如何在不同 SQLite 版本间切换?
A: 使用 Homebrew 的版本管理功能:
bash
# 查看可用版本
brew info sqlite
# 安装特定版本
brew install sqlite@3.39
# 切换版本
brew link --force sqlite@3.39Q: 如何在 macOS 上备份 SQLite 数据库?
A: 可以使用以下命令备份:
bash
# 备份数据库
sqlite3 source.db ".backup backup.db"
# 或使用 cp 命令(在数据库未被使用时)
cp source.db backup.dbQ: 如何修复损坏的 SQLite 数据库?
A: 可以使用 SQLite 的修复命令:
bash
# 修复数据库
sqlite3 corrupted.db ".recover" | sqlite3 fixed.db