先去官网下载sqlite-tools-win32-x86-3340100.zip,版本号以后会变。解压后打开sqlite3.exe。也可以将它添加到环境变量后直接在cmd使用。
无论是备份还是恢复,都要先打开数据库。
sqlite>.open FILENAME
备份方式一
- sqlite>.backup NEWNAME # 备份数据库,备份的是文件,不是SQL语句
- sqlite>.restore 备份文件的名字 # 恢复数据库
备份方式二
- sqlite>.output NEWNAME.sql # 备份数据库,备份的是SQL语句,个人建议扩展名为.sql
- sqlite>.dump [mytabl%] # 利用dump命令,将数据导出到文件。如果dump不带参数,则导出整个数据库
- sqlite>.output stdout # 不懂意思,有人说加有人说不加,参考链接1,参考链接2,参考链接3
- sqlite>.read 备份文件的名字 # 恢复数据库
恢复时,可以新建一个空库再使用SQL语句文件恢复,直接使用原来的库可能有问题(如字段已存在等,不过也可以把表删了后导入,这样没问题)。
用命令行新建空库的方法(参考链接7,参考链接8):由于我没将sqlite3.exe添加到环境变量,所以在sqlite3.exe所在文件夹按shift再点右键,点在此处打开powershell
- sqlite3 新数据库名字 # 库名自定义。powershell可能报错,但有提示尝试使用.\sqlite3
- .database # 查看创建的数据库,执行完才生成空数据库文件
另外,我是因数据库迁移出错才备份数据库,所以导出的SQL语句可能有重复字段或其他异常,导出后最好仔细检查SQL语句。我新建了空库并导入数据时提示重复字段,在别人的帮助下发现是SQL语句里有重复字段,一开始没想到导出的文件会有问题,以为它是根据库生成的不会有问题,正是因迁移失败才产生了重复字段(迁移前我修改了"字段名"、"字段值的长度")。
参考链接4,参考链接5,参考链接6(内容在5的基础上更丰富)
补充:navicat里表名点右键,转储SQL文件也可以备份成SQL语句。