SQLite安装与配置 #

一、SQLite安装概述 #

1.1 安装方式 #

SQLite 提供多种安装方式:

方式 说明 适用场景
预编译二进制 直接下载可执行文件 快速使用
包管理器 使用系统包管理器 方便管理
源码编译 从源代码编译 自定义需求
编程语言内置 语言内置SQLite支持 应用开发

1.2 安装组件 #

text
SQLite 安装包含:
├── sqlite3 命令行工具
├── sqlite3 库文件
│   ├── libsqlite3.so (Linux)
│   ├── libsqlite3.dylib (macOS)
│   └── sqlite3.dll (Windows)
└── 头文件 (开发用)
    └── sqlite3.h

二、Windows安装 #

2.1 下载预编译版本 #

powershell
# 1. 访问 SQLite 下载页面
# https://www.sqlite.org/download.html

# 2. 下载以下文件:
# - sqlite-tools-win-x64-*.zip (命令行工具)
# - sqlite-dll-win-x64-*.zip (DLL文件)

# 3. 解压到目录
# 例如:C:\sqlite\

2.2 配置环境变量 #

powershell
# 方法1:通过系统设置
# 1. 右键"此电脑" -> 属性 -> 高级系统设置
# 2. 环境变量 -> 系统变量 -> Path
# 3. 添加 SQLite 目录路径

# 方法2:使用 PowerShell(管理员)
[Environment]::SetEnvironmentVariable(
    "Path",
    $env:Path + ";C:\sqlite",
    "Machine"
)

# 验证安装
sqlite3 --version

2.3 使用 Scoop 安装 #

powershell
# 安装 Scoop(如果未安装)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex

# 使用 Scoop 安装 SQLite
scoop install sqlite

# 验证安装
sqlite3 --version

2.4 使用 Chocolatey 安装 #

powershell
# 安装 Chocolatey(如果未安装)
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

# 使用 Chocolatey 安装 SQLite
choco install sqlite -y

# 验证安装
sqlite3 --version

三、Linux安装 #

3.1 Ubuntu/Debian #

bash
# 使用 apt 安装
sudo apt update
sudo apt install sqlite3

# 安装开发库(如需编译)
sudo apt install libsqlite3-dev

# 验证安装
sqlite3 --version

3.2 CentOS/RHEL/Fedora #

bash
# CentOS/RHEL
sudo yum install sqlite

# Fedora
sudo dnf install sqlite

# 安装开发库
sudo yum install sqlite-devel
# 或
sudo dnf install sqlite-devel

# 验证安装
sqlite3 --version

3.3 Arch Linux #

bash
# 使用 pacman 安装
sudo pacman -S sqlite

# 验证安装
sqlite3 --version

3.4 从源码编译 #

bash
# 下载源码
wget https://www.sqlite.org/2024/sqlite-autoconf-3450000.tar.gz

# 解压
tar xzf sqlite-autoconf-3450000.tar.gz
cd sqlite-autoconf-3450000

# 配置
./configure --prefix=/usr/local

# 编译
make

# 安装
sudo make install

# 更新库缓存
sudo ldconfig

# 验证安装
sqlite3 --version

四、macOS安装 #

4.1 系统内置 #

bash
# macOS 自带 SQLite
sqlite3 --version

# 系统内置版本可能较旧

4.2 使用 Homebrew 安装 #

bash
# 安装最新版本
brew install sqlite

# 查看安装信息
brew info sqlite

# 验证安装
sqlite3 --version

4.3 使用 MacPorts 安装 #

bash
# 安装 SQLite
sudo port install sqlite3

# 验证安装
sqlite3 --version

五、验证安装 #

5.1 命令行验证 #

bash
# 检查版本
sqlite3 --version
# 输出:3.45.0 2024-01-15 17:01:13 ...

# 查看帮助
sqlite3 --help

5.2 创建测试数据库 #

bash
# 创建或打开数据库
sqlite3 test.db

# 在 SQLite 提示符下执行
sqlite> CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT);
sqlite> INSERT INTO test (name) VALUES ('Hello');
sqlite> SELECT * FROM test;
1|Hello
sqlite> .quit

# 查看数据库文件
ls -la test.db

5.3 检查库文件 #

bash
# Linux
ldconfig -p | grep sqlite

# macOS
otool -L /usr/lib/libsqlite3.dylib

# Python 检查
python3 -c "import sqlite3; print(sqlite3.sqlite_version)"

六、命令行工具配置 #

6.1 配置文件 #

bash
# SQLite 配置文件:~/.sqliterc

# 创建配置文件
cat > ~/.sqliterc << 'EOF'
.headers on
.mode column
.nullvalue NULL
.prompt "sqlite> " "   ...> "
.timer on
EOF

6.2 常用配置项 #

sql
-- 在 SQLite 命令行中设置

-- 显示列名
.headers on

-- 输出格式
.mode column    -- 列模式
.mode list      -- 列表模式
.mode csv       -- CSV模式
.mode html      -- HTML表格
.mode insert    -- INSERT语句
.mode line      -- 单行模式
.mode tabs      -- 制表符分隔
.mode ascii     -- ASCII模式

-- NULL值显示
.nullvalue NULL

-- 输出目标
.output file.txt    -- 输出到文件
.output stdout      -- 输出到屏幕

-- 执行计时
.timer on

-- 提示符设置
.prompt "sqlite> " "   ...> "

-- 显示执行计划
.eqp on

-- 统计信息
.stats on

6.3 环境变量 #

bash
# 设置 SQLite 环境变量

# 数据库文件搜索路径
export SQLITE_DBPATH=/path/to/databases

# 临时文件目录
export SQLITE_TMPDIR=/tmp

# 添加到 ~/.bashrc 或 ~/.zshrc

七、图形化工具安装 #

7.1 DB Browser for SQLite #

bash
# Windows
# 下载安装包:https://sqlitebrowser.org/dl/

# macOS
brew install --cask db-browser-for-sqlite

# Linux (Ubuntu/Debian)
sudo apt install sqlitebrowser

# Linux (Fedora)
sudo dnf install sqlitebrowser

7.2 SQLiteStudio #

bash
# 下载地址:https://sqlitestudio.pl/

# macOS
brew install --cask sqlitestudio

7.3 DBeaver #

bash
# macOS
brew install --cask dbeaver-community

# Linux (Ubuntu/Debian)
sudo snap install dbeaver-ce

八、编程语言环境配置 #

8.1 Python #

python
# Python 内置 sqlite3 模块
import sqlite3

# 检查版本
print(sqlite3.sqlite_version)

# 连接数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# 创建表
cursor.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL
    )
''')

# 插入数据
cursor.execute("INSERT INTO users (name) VALUES (?)", ('Alice',))
conn.commit()

# 查询数据
cursor.execute("SELECT * FROM users")
print(cursor.fetchall())

# 关闭连接
conn.close()

8.2 Node.js #

bash
# 安装 better-sqlite3
npm install better-sqlite3

# 或安装 sql.js(纯JavaScript实现)
npm install sql.js
javascript
// 使用 better-sqlite3
const Database = require('better-sqlite3');
const db = new Database('example.db');

// 创建表
db.exec(`
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL
    )
`);

// 插入数据
const insert = db.prepare('INSERT INTO users (name) VALUES (?)');
insert.run('Alice');

// 查询数据
const select = db.prepare('SELECT * FROM users');
console.log(select.all());

db.close();

8.3 Java #

xml
<!-- Maven 依赖 -->
<dependency>
    <groupId>org.xerial</groupId>
    <artifactId>sqlite-jdbc</artifactId>
    <version>3.45.0.0</version>
</dependency>
java
import java.sql.*;

public class SQLiteExample {
    public static void main(String[] args) {
        String url = "jdbc:sqlite:example.db";
        
        try (Connection conn = DriverManager.getConnection(url)) {
            Statement stmt = conn.createStatement();
            
            // 创建表
            stmt.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)");
            
            // 插入数据
            stmt.execute("INSERT INTO users (name) VALUES ('Alice')");
            
            // 查询数据
            ResultSet rs = stmt.executeQuery("SELECT * FROM users");
            while (rs.next()) {
                System.out.println(rs.getInt("id") + ": " + rs.getString("name"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

8.4 Go #

bash
# 安装驱动
go get github.com/mattn/go-sqlite3
go
package main

import (
    "database/sql"
    "fmt"
    "log"
    
    _ "github.com/mattn/go-sqlite3"
)

func main() {
    db, err := sql.Open("sqlite3", "./example.db")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()
    
    // 创建表
    _, err = db.Exec(`
        CREATE TABLE IF NOT EXISTS users (
            id INTEGER PRIMARY KEY,
            name TEXT NOT NULL
        )
    `)
    if err != nil {
        log.Fatal(err)
    }
    
    // 插入数据
    _, err = db.Exec("INSERT INTO users (name) VALUES (?)", "Alice")
    if err != nil {
        log.Fatal(err)
    }
    
    // 查询数据
    rows, err := db.Query("SELECT id, name FROM users")
    if err != nil {
        log.Fatal(err)
    }
    defer rows.Close()
    
    for rows.Next() {
        var id int
        var name string
        rows.Scan(&id, &name)
        fmt.Printf("%d: %s\n", id, name)
    }
}

九、常见问题 #

9.1 找不到命令 #

bash
# 错误:sqlite3: command not found

# 解决方案:
# 1. 确认安装路径
which sqlite3

# 2. 检查 PATH 环境变量
echo $PATH

# 3. 添加到 PATH
export PATH=$PATH:/path/to/sqlite

9.2 版本过低 #

bash
# 检查当前版本
sqlite3 --version

# 如果版本过低,使用包管理器更新
# 或从源码编译安装最新版本

9.3 权限问题 #

bash
# 错误:unable to open database file

# 解决方案:
# 1. 检查文件权限
ls -la database.db

# 2. 修改权限
chmod 644 database.db

# 3. 检查目录权限
chmod 755 /path/to/database/directory

9.4 库链接问题 #

bash
# 错误:error while loading shared libraries: libsqlite3.so

# 解决方案:
# 更新库缓存
sudo ldconfig

# 或设置 LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

十、总结 #

安装要点 #

平台 推荐方式
Windows 下载预编译版本或使用 Scoop
Linux 使用包管理器(apt/yum)
macOS 使用 Homebrew

验证安装 #

bash
# 1. 检查命令
sqlite3 --version

# 2. 创建测试数据库
sqlite3 test.db "SELECT sqlite_version();"

# 3. 编程语言检查
python3 -c "import sqlite3; print(sqlite3.sqlite_version)"

下一步 #

安装完成后,让我们学习SQLite的基础语法!

最后更新:2026-03-27