绝大多数Linux发行版已预装sqlite3,直接运行sqlite3 test.db看到sqlite>提示符才算连接成功;若报unable to open database file,通常是当前目录不可写,应换至/tmp或家目录重试。

绝大多数 Linux 发行版已预装 sqlite3,直接运行就能用;没装的话,一行命令即可完成安装,不需要配置服务、不占后台资源、也不需要 root 权限启动守护进程。
怎么确认系统里已经有 sqlite3
别只看 which sqlite3 或 sqlite3 --version 有输出就放心——那只能说明命令行工具在 PATH 里,不代表它能真正建库写入。
- 执行
sqlite3 test.db,看到sqlite>提示符才算连接成功;如果报unable to open database file,大概率是当前目录不可写(比如在/root下但没权限),换到/tmp或自己家目录重试 - 如果提示
command not found,说明二进制根本没装,不是 PATH 问题 -
sqlite3 --version输出版本号 ≠ 能用:有些容器镜像或最小化系统(如 Alpine、Buildroot)连sqlite3命令都不带
Ubuntu/Debian 一键安装命令和必要补充
联网状态下最稳妥的安装方式:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 运行
sudo apt update && sudo apt install sqlite3—— 这只装命令行工具,够日常操作 - 如果你要写 C 程序调用 SQLite API,必须额外运行
sudo apt install libsqlite3-dev,否则编译时会卡在sqlite3.h: No such file or directory - Python 用户一般不用装
libsqlite3-dev:import sqlite3是标准库,自带;只有想用pysqlite3升级底层版本才需 pip 安装
为什么 .tables 没反应、CREATE TABLE 不生效
这不是 SQLite 坏了,而是元命令和 SQL 语句的边界没守牢。这是新手卡住最多的地方。
-
.tables是元命令,不加;;而CREATE TABLE users(id INTEGER);是 SQL,**必须以分号结尾**,漏掉就只是缓存,不会执行 - 输完
sqlite3 myapp.db后,先执行.database:如果显示main: :memory:,说明你其实在用内存数据库,表一关就丢,得退出重进并指定文件名 -
.schema比.tables更可靠——它会输出所有已提交的建表语句;如果空白,说明真没建成功,不是显示问题 - 表名实际区分大小写:用双引号建的
CREATE TABLE "Log",后续查询必须写SELECT * FROM "Log";,否则报错no such table: Log
手动编译安装(离线/定制版本场景)
适用于不能联网、或需要特定版本(比如要修复某个 CVE)、或嵌入式目标平台交叉编译的情况。
- 下载的是
sqlite-autoconf-*.tar.gz,不是.zip或文档包;解压后进目录运行./configure --prefix=/usr/local -
make && sudo make install后,检查/usr/local/bin/sqlite3是否存在;若仍找不到命令,需把/usr/local/bin加进$PATH - 编译不报错 ≠ 安装成功:务必验证
sqlite3 :memory: "select 1;"能立刻返回结果,且sqlite3 /tmp/test.db "CREATE TABLE t(x); .tables"能输出t
最容易被忽略的一点:SQLite 的事务默认自动提交,每条 INSERT 都是独立事务。如果想批量写入并保证原子性,必须显式执行 BEGIN TRANSACTION; 开启事务,否则进程崩溃时可能只写入一半数据。

















