![如何在.DB文件中查找值?](https://linux22.com/image/1524118/%E5%A6%82%E4%BD%95%E5%9C%A8.DB%E6%96%87%E4%BB%B6%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%80%BC%EF%BC%9F.png)
我正在尝试查找热键数据设置.db申请TS3。当我打开 .DB 文件时记事本++,并击中Ctrl+F,然后输入“滚动,您将找到热键数据。每当我使用记事本++,文件已损坏,因此我需要使用实际的 .DB 文件查看器/编辑器对其进行编辑。
我正在使用SQLite 数据库浏览器
我查看了这个文件的所有地方,但找不到热键数据。没有Control+F在 DB 浏览器中,这使得它变得更加困难。
有人能帮我找到这个文件中的热键数据吗?
答案1
我正在将我的评论扩展为一个答案,主要观点是,虽然我同意 Alex 所写的所有内容,但我认识到 Windows 用户最好使用图形工具。
如何打开、浏览和编辑 Sqlite .DB 文件
Sqlite 数据库不是纯文本文件,需要使用特定软件处理。如果你使用 Firefox,我建议使用SQLite 管理器附加组件,否则有出色的独立SQLite 数据库浏览器,适用于 Windows、Mac 和 Linux,甚至可用作便携式应用程序。这正是 OP 已经在使用的。
使用其中任何一个程序,您都可以连接(或打开)SQLite 文件,然后浏览、搜索和编辑其内容。如果您进行了任何更改,您可以将其保存回原始文件,这样就大功告成了。
如何在数据库中查找值
数据库中的简单搜索是针对表中的列进行的。这意味着您必须事先知道哪个表包含您要查找的数据,选择它,然后针对其中一列运行查询。数据库管理软件(图形和命令行)通常都遵循这种模式。
但是,如果您事先不知道要查找的字符串可能在哪里,该怎么办?如何在整个数据库中的任何地方查找特定序列?最简单的方法是将数据库转换为纯文本文件并在其中进行搜索。这可以显示某个字符串的所有出现情况,并让我们知道哪些表和列是相关的,以便我们可以返回并使用我们选择的管理工具处理它们。或者,我们可以仔细编辑导出的数据库,然后将其重新导入为原始 .DB 文件格式。
几乎每个数据库管理工具都有导出(或转储)和导入功能可以做到这一点。
具体:发现“滚动在这文件——失败
通过上述方法,我无法找到字符串“滚动在里面文件由 OP 提供。让我感到困惑的是,原始 .DB 文件包含它(以文本形式查看时),而导出的 SQL 不包含它;然而,当它重新导入回 .DB 格式时,新文件包含它(再次以文本形式查看时)。目前我无法解释。
答案2
SQLite 数据库是二进制格式的,您无法直接使用文本编辑器访问它。如果您想以文本形式查看数据库内容,则需要将其导出为 SQL 转储文件:
运行cmd
(命令行控制台),然后导航到cd
包含数据库文件的文件夹(使用命令)并发出以下命令(database-file.db
用实际文件替换)
sqlite3 database-file.db .dump > database-file.txt
您可以下载命令行实用程序sqlite3
这里
之后您可以database-file.txt
使用 Notepad++ 探索此文件。
如果您编辑了转储的 SQL 文件并希望将其重新创建为 SQLite 数据库,请使用以下命令:
sqlite3 database-file.db < database-file.txt
附言
关于您在引用的数据库中查找的 HotKey 数据,与 HotKey 相关的唯一记录是:
INSERT INTO "Application" VALUES(1488894941,'HotkeyMode','2');
INSERT INTO "Application" VALUES(1488894941,'HotkeyProfile','160cc86f-8082-4bad-afbd-7ae9b96482ca');
INSERT INTO "Global" VALUES(1488894937,'HotkeyDialog','297 433');
INSERT INTO "Connecting" VALUES(1487550188,'LastUsedServerHotkeyProfile','160cc86f-8082-4bad-afbd-7ae9b96482ca');
如果你不知道 TeamSpeak 的内部结构'HotkeyMode','2'
,'HotkeyProfile','160cc86f-8082-4bad-afbd-7ae9b96482ca'
那么改变你想要的东西就不那么容易了