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