.db文件和MySQL

时间:2009-08-22 02:59:50

标签: mysql sqlite

我遇到一个.db文件的实际问题,它的大小约为20gb,有三个表和其余的数据。

我在Mac上,所以我不得不使用一些糟糕的应用程序,但它不会在Access中打开。

有没有人知道什么软件会生成.db文件?哪些软件允许我打开它并将其导出为CSV或MySQL文件?

此外,如果连接在传输过程中被中断,这会影响文件吗?

2 个答案:

答案 0 :(得分:4)

由于mac现在是基于BSD的,尝试打开一个终端并执行命令file /path/to/large/db - 它应该告诉你至少DB是什么文件类型,从那里你可以确定要使用哪个程序打开它。它可能是MySQL,可能是PostGreSQL,可能是SQLite - 文件会告诉你。

示例:

$ file a.db
a.db: SQLite 3.x database

$ file ~/.kde/share/apps/amarok/mysqle/amarok/tracks.{frm,MYD,MYI}
~/.kde/share/apps/amarok/mysqle/amarok/tracks.frm: MySQL table definition file Version 10
~/.kde/share/apps/amarok/mysqle/amarok/tracks.MYD: data
~/.kde/share/apps/amarok/mysqle/amarok/tracks.MYI: MySQL MISAM compressed data file Version 1

所以这是SQLite v3?然后尝试

sqlite3 /path/to/db

您可以从CLI执行几乎标准的SQL。 At the CLI, you can type .tables to list all the tables in that DB。 - 或者如果您更喜欢GUI,this question中列出了一些选项。接受的答案是SQLite manager for Firefox

然后,您可以根据需要drop tablesdelete

以下是将csv转储到stdout的示例:

$ sqlite3 -separator ',' -list a.db "SELECT * FROM t"
3,4
3,5
100,200

并将其存储到文件中 - > operator将输出重定向到您命名的文件:

$ sqlite3 -separator ',' -list a.db "SELECT * FROM t" > a.csv
$ cat a.csv # puts the contents of a.csv on stdout
3,4
3,5
100,200

-separator ','表示字段应以逗号分隔; -list表示使用分隔符将行数据放在同一行上; a.db表示要使用的数据库;而"SELECT * FROM t"只是要执行的SQL命令。

答案 1 :(得分:0)

我不是Mac用户,但如果它是一个SQLite文件,我听说过有关Base的好消息。