如何删除indexedDB?


92

我正在一个涉及使用IndexedDB的项目中。当我开始了解这项技术时,我需要能够手动删除indexedDB,以便重新开始。

我找到了在Firefox中执行此操作的方法,但找不到适用于Google Chrome的方法。

我尝试删除此文件夹的内容(我使用的是Mac):

{home}/Library/Application Support/Google/Chrome/Default/IndexedDB

但似乎Chrome stil到处都有数据库,所以我无法重新开始。

Answers:


101

从理论上讲,在Chrome中删除IndexedDB所需要做的就是:

  1. 在Chrome中,依次转到选项>高级>内容设置>所有Cookie和网站数据>查找创建IndexedDB的域
  2. 点击“ X”或点击“索引数据库”>删除

在Windows中,文件位于以下位置:

%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\IndexedDB

在Mac上,请执行以下操作:

  1. 在Chrome中,转到“设置”(或Chrome菜单下的“首选项”)
  2. 点击“显示高级设置”(在页面底部)
  3. 转到“隐私”>“内容设置”>“所有cookie和站点数据”>查找创建IndexedDB的域
  4. 点击“ X”或点击“索引数据库”>删除

在Mac上,该文件夹位于以下位置:

/Users/[USERNAME]/Library/Application Support/Google/Chrome/Default/IndexedDB/

在Linux上,该文件夹位于:

/home/[USERNAME]/.config/google-chrome/Default/IndexedDB/

2
Chrome for OS X没有“选项”菜单项,也没有对“高级选项”的引用,因此对于某些人来说这可能是一个令人困惑的提示。
Mark Caufman 2012年

3
在OS X上,您可以通过“ Chrome>清除浏览数据...”到达那里,关闭对话框,然后转到“高级设置”而不是“高级选项”。之后,它与上述相同。
natevw 2012年

56
我认为在控制台中运行indexedDB.deleteDatabase(“ databaseName”)比较容易。
user854301

1
在OSX Chrome v31上,执行以下步骤:1.设置>显示高级设置...>隐私>内容设置...> Cookies>所有cookie和站点数据... 2.搜索以过滤IP。3.点击Indexed database。4.拆下!
Amo Wu

也许它是Linux下的Chrome或它是一个较新的版本,但是按照我的经验,可以按照以下步骤操作:1.设置>显示高级设置...>内容设置>所有cookie和网站数据会在其中创建域名IndexedDB 2.单击“ X”或单击“索引数据库”>“删除”
软件先知2014年

160

我已成功在Chrome中运行以下命令:

indexedDB.deleteDatabase('DB NAME')

14
这对我来说一直失败,然后我意识到我需要先关闭数据库。在我的成功处理程序中,我保留了对数据库的方便引用(e.target.result),因此可以在其上调用close()。只有这样,才能调用deleteDatabase('DB NAME')。如果您在chrome dev工具的资源标签上,则还需要右键单击并使用'refresh indexedDB'来查看删除的结果。
fullstacklife 2014年

找不到chrome应用程序的主机名,但是当您检查该应用程序时可以使用。
卡尼2015年

29

Alternarive可以使用以下命令在开发人员控制台中执行此操作:

indexedDB.deleteDatabase("databaseName")

1
这是最简单的方法。您只需要右键单击Resources中的'IndexedDB'并选择'Refresh IndexedDB'来确认数据库已被压缩。
Velojet 2015年

10

在Chrome Webkit中,您可以使用webkitGetDatabaseNames它返回所有数据库名称

使用此代码,您可以删除所有本地indexedDB:

window.indexedDB.webkitGetDatabaseNames().onsuccess = function(sender,args)
{
    var r = sender.target.result;
    for(var i in r)
        indexedDB.deleteDatabase(r[i]);
}; 

5

要删除所有 Chrome IndexedDB数据库,请在OSX终端仿真器中运行以下命令。

rm -rf ${HOME}/Library/Application\ Support/Google/Chrome/Default/IndexedDB/*

现在重启浏览器就可以了。


因为我需要经常清除IndexedDB数据库,所以在〜。/ bash_profile中设置了别名。

alias purge-idb="rm -rf ${HOME}/Library/Application\ Support/Google/Chrome/Default/IndexedDB/*"

3

要从OS X版本的Chrome中删除IndexedDB,请执行以下操作:

1)在“首选项”中,显示“高级设置”,然后单击“隐私”部分下的“内容设置”按钮。

2)在“内容设置”弹出窗口中,单击“ Cookies”部分下的“所有Cookie和站点数据”按钮。

3)在“ Cookies和站点数据”弹出窗口中,使用“搜索Cookies”文本框查找作为IndexedDB源的域。

4)单击列表中的域条目。

5)单击域下列出的“索引数据库”标签。

6)在索引数据库的下拉详细信息中,单击“删除”按钮。


2

在Debian GNU / Linux目录中

/ home / [用户名] /。config / google-chrome / Default / IndexedDB / chrome-xxx.indexeddb.leveldb /

包含常规文件(例如):

000003.log,CURRENT,LOCK,LOG,MANIFEST-000002


2

无法以编程方式删除IndexedDB数据库(与存储和索引相反)。

至于手动解决方法,本文详细介绍了Windows系统上Firefox和Chrome浏览器的数据库位置。

更新:感谢开发人员Joshua Bell,Chrome deleteDatabasewindow.indexedDB对象上实现了不合规格(但非常有用)的方法。这是落入此补丁的漏洞。此外,在较新版本的IE中,您可以通过设置面板删除数据库。


2

在控制台中编写此代码段

window.indexedDB.deleteDatabase(<your db name>)


2

Chrome Developer工具现在可以在“应用程序/清除存储”下选择删除应用程序的所有数据库。



1

为了完成@Judson的答案,基于@fullstacklife的评论;使用JavaScript删除Chrome中的IndexedDB,您应该:

let currentIDB = indexedDB.open("DB_NAME", DB_VERSION_INTEGER);
    currentIDB.onblocked = function(){
        //
    };
    currentIDB.onerror = function(){
        //
    };
    currentIDB.onsuccess = function(){
        var idb = currentIDB.result;
        idb.close();
        indexedDB.deleteDatabase("DB_NAME");
    };

0

或者,在新的隐身窗口中使用您的Web应用程序,并在完成后关闭它:数据库已删除。


0

在chrome OSX中-/ Users / user / Library / Application Support / Google / Chrome / Default / IndexedDB Firefox OSX-Users / user / Library / Application Support / Firefox / Profiles / 4zaemxcn.default / indexedDB

您只需要使库文件夹可见即可。所有文件都存储在文件夹(称为域名)中,并且文件使用哈希,但是您可以从中找出数据库的名称。您可以从IDB删除数据,因为它是客户端数据库,并且所有数据都存储在本地。


0

在Windows中,可以通过找到浏览器的IndexedDB目录并将其删除来手动删除整个IndexedDB数据库。

对于Chrome:

C:\ Users \用户名\ AppData \ Local \ Google \ Chrome \ User Data \ Profile 1 \ IndexedDB

您可以删除每个清除indexedDB的文件夹。您现在可以重新开始。


0

对于您的特定问题,这可能算是过分了,但是在删除IDB的过程中,我一直坚持到最后。

最后,我的解决方案基于mozilla的文档,但是要求我首先关闭数据库。

对我而言,在Javascript中,代码如下所示:

my_db_instance.close(function(e){console.log(e)});
var DBDeleteRequest = indexedDB.deleteDatabase("my_db_name");

// When i had the base open, the closure was blocked, so i left this here
DBDeleteRequest.onblocked = function(event) {
  console.log("Blocked");
};

DBDeleteRequest.onerror = function(event) {
    console.log("Error deleting database.");
  console.log(event);
};

DBDeleteRequest.onsuccess = function(event) {
  console.log("Database deleted successfully");
};

0

我需要摆脱Chrome中的indexedDB。因此,我使用MasterSeeker在计算机上搜索了这个糟糕的东西,称为“电子邮件助手”。在Chrome中被索引为DB的一堆文件夹中找到了东西。我只删除那些文件似乎太容易了。我抬起头来,到了这里。我使用Windows 10 PC进行了Chrome设置。我只是尝试清除浏览数据。Presto-所有这些文件都从indexedDB中消失了,包括令人恐惧的“电子邮件助手” crapola。现在,当我查看indexedDB文件夹时,我看到的是重新出现的是https_mail.google.com_0.indexeddb.leveldb-看起来像是安全无刺激的内容。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.