Skip to content

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

从源代码编译安装

  1. 下载最新版本的 SQLite 源代码:
bash
wget https://www.sqlite.org/2023/sqlite-autoconf-3440200.tar.gz
tar -xzvf sqlite-autoconf-3440200.tar.gz
cd sqlite-autoconf-3440200
  1. 编译并安装:
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模式优化

生产环境安装建议

  1. 避免使用系统内置版本:系统内置版本通常较旧,缺少新特性和安全补丁
  2. 使用 Homebrew 管理:便于升级和管理多个版本
  3. 设置正确的 PATH:确保使用的是最新安装的版本,而不是系统内置版本
  4. 考虑静态链接:对于生产应用,建议静态链接SQLite,避免依赖外部库
  5. 定期更新:关注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 install

macOS 特定优化

  1. 使用 APFS 文件系统:APFS 对 SQLite 性能有较好的支持
  2. 禁用文件系统压缩:对 SQLite 数据库文件禁用压缩,避免性能问题
  3. 合理设置文件权限:确保数据库文件具有适当的读写权限
  4. 考虑使用 SSD:SQLite 在 SSD 上性能更好

使用 SQLite 进行开发

在 Xcode 项目中使用 SQLite

  1. 添加 SQLite 框架:在 Xcode 项目中添加 libsqlite3.tbd 框架
  2. 使用 FMDB 封装:考虑使用 FMDB 等第三方封装库,简化 SQLite 操作
  3. 设置正确的数据库路径:在 iOS/macOS 应用中,将数据库文件存储在合适的位置

常见开发工具

工具类型特点
DB Browser for SQLiteGUI开源免费,功能全面
NavicatGUI商业化,功能强大
DBeaverGUI支持多种数据库,开源免费
sqlite3CLI命令行工具,轻量级

安装后验证与测试

验证版本

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-sqlite

Q: 安装过程中遇到权限问题怎么办?

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.39

Q: 如何在 macOS 上备份 SQLite 数据库?

A: 可以使用以下命令备份:

bash
# 备份数据库
sqlite3 source.db ".backup backup.db"

# 或使用 cp 命令(在数据库未被使用时)
cp source.db backup.db

Q: 如何修复损坏的 SQLite 数据库?

A: 可以使用 SQLite 的修复命令:

bash
# 修复数据库
sqlite3 corrupted.db ".recover" | sqlite3 fixed.db