SQLite 本地开发环境搭建:从零到跑通你的第一个项目

概述

你写个小脚本需要装 MySQL?搞个大项目又觉得 PostgreSQL 太重?SQLite 就是那个"刚刚好"的选择。

它没有服务端进程,数据存在一个 .db 文件里。复制文件就是备份,删文件就是销毁。Python、Node.js、Go 原生支持,几乎不用配任何东西就能跑。

这篇教程教你在一台干净的 Ubuntu 服务器上搭好 SQLite 开发环境,包括命令行工具、Python/Node.js 驱动、以及一个轻量级 Web 管理面板。

准备工作

你需要以下条件:

  • 一台 Linux 机器(Ubuntu 22.04 / Debian 12 最佳)
  • 基本命令行操作能力
  • 约 50MB 磁盘空间

先确认系统是不是干净的:

cat /etc/os-release | grep PRETTY_NAME
df -h / | tail -1

输出显示 Ubuntu 或 Debian,磁盘剩余大于 100MB 就行。

安装步骤

1. 安装 SQLite3 和基础工具

SQLite 在大多数 Linux 发行版里已经是默认安装的。先验证一下:

sqlite3 --version

如果输出了版本号(比如 3.45.1),说明已经有了。没装的话跑这个:

sudo apt update && sudo apt install -y sqlite3 libsqlite3-dev

再确认一遍版本:

sqlite3 --version

2. 创建你的第一个数据库

SQLite 不需要创建数据库实例,直接操作文件就行:

mkdir -p ~/myproject && cd ~/myproject
sqlite3 app.db

进入交互模式后,你会看到 sqlite> 提示符。先建张表试试:

CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT UNIQUE,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

插一条数据:

INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com');

查一下:

SELECT * FROM users;

看到输出就对了。输入 .quit 退出交互模式。

现在看看生成了什么:

ls -lh app.db
file app.db

就是一个几 KB 的文件。把它拷到别的地方,换台机器照样能打开。

3. 安装 Python 开发环境

大多数 Python 项目都用 SQLite。检查 Python 是否就绪:

python3 --version

Python 3.7+ 自带 sqlite3 模块,不需要额外安装。写个脚本验证:

cat > test_db.py << 'EOF'
import sqlite3

conn = sqlite3.connect('app.db')
cursor = conn.cursor()

cursor.execute("SELECT name, email FROM users")
for row in cursor.fetchall():
    print(f"用户: {row[0]}, 邮箱: {row[1]}")

conn.close()
print("Python + SQLite 连接成功!")
EOF

python3 test_db.py

输出显示用户信息,说明 Python 驱动工作正常。

如果你用虚拟环境,推荐这样初始化:

python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip

4. 安装 Node.js 开发环境

Node.js 项目同样可以无缝使用 SQLite。先装 Node:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
node --version
npm --version

创建一个 Node 项目并安装 better-sqlite3:

mkdir -p ~/node-db-test && cd ~/node-db-test
npm init -y
npm install better-sqlite3

写个测试脚本:

cat > test.js << 'EOF'
const Database = require('better-sqlite3');
const db = Database('./app.db');

const stmt = db.prepare('SELECT name, email FROM users');
const rows = stmt.all();

rows.forEach(row => {
    console.log(`用户: ${row.name}, 邮箱: ${row.email}`);
});

console.log('Node.js + SQLite 连接成功!');
EOF

node test.js

看到结果就说明 Node.js 环境也搭好了。

5. 安装 DB Browser for SQLite(可选)

命令行够用了,但有时候图形界面更方便。DB Browser 是最流行的 SQLite 可视化工具:

sudo apt install -y sqlitebrowser

启动方式:

sqlitebrowser app.db &

弹出一个窗口,你可以直接浏览表结构、执行 SQL、导出数据。

如果你用的是远程服务器,没有桌面环境,可以用网页版替代方案——SQLite Web:

cd ~
git clone https://github.com/liamks/sqlite-web.git
cd sqlite-web
pip install .
sqlite-web --host 0.0.0.0 --port 8080 ~/myproject/app.db

然后浏览器访问 http://你的服务器IP:8080 就能看到 Web 管理面板了。

验证

全部搭完之后,跑一轮完整验证:

cd ~/myproject

# 1. SQLite 命令行
sqlite3 app.db ".tables"

# 2. Python 连接
python3 test_db.py

# 3. Node.js 连接
cd ~/node-db-test && node test.js

# 4. 数据库文件检查
ls -lh ~/myproject/app.db

四步都通过,环境就算彻底搞定了。

常见问题

Q: 怎么备份 SQLite 数据库?

A: 直接复制 .db 文件就行。如果数据库正在写入,用以下命令做一致性备份:

sqlite3 app.db ".backup backup.db"

Q: 生产环境能用 SQLite 吗?

A: 读多写少的场景完全没问题。高并发写入的话,建议切到 PostgreSQL。SQLite 适合个人项目、小工具、嵌入式场景。

Q: 中文乱码怎么办?

A: SQLite 默认 UTF-8 编码,一般不会出问题。确保终端也设置成 UTF-8:

echo $LANG

输出应该是 zh_CN.UTF-8 或 en_US.UTF-8。

Q: 怎么迁移到 MySQL/PostgreSQL?

A: 先用 .dump 导出 SQL 文件:

sqlite3 app.db .dump > schema.sql

拿到标准 SQL 语句后,导入目标数据库即可。大部分 ORM 框架都能帮你处理迁移。


SQLite 的魅力就在于"没什么可配的"。装好就能用,用完文件一删干净。适合快速原型、小型项目、以及不想被数据库绑架的场景。

你的下一个项目,要不要试试只用一个 .db 文件搞定一切?

这篇文章对你有帮助吗?