2011-05-15 90 views
0

我將使用Perl的DBD:SQLite模塊寫入MySQLite數據庫文件,並且我想知道是否可以通過任何MySQL發行版讀取此文件?有沒有更好的方法來創建一個簡單的MySQL數據庫(使用Perl)?有關MySQL和MySQLite的常見問題

如果它意味着什麼,我只打算使用數據庫存儲基於密鑰的唯一ID號碼的鍵值對。我嘗試了BerkeleyDB,但Perl上對它的支持很少,並且我無法在某些版本的Windows上使它正常工作。

編輯:我知道BerkeleyDB是一個更好的方式來做到這一點,但是當我爲它編寫腳本時,大多數方法都有TODO,並且我在Windows Server 2003上使用相同的密封存在神祕的錯誤代碼在我家Win7機器上連續運行了兩週。

+2

我很確定沒有'MySQLite'。有一個'SQLite',它太棒了! – Rudie 2011-05-15 19:04:23

+1

在Perl中對BerkeleyDB有相當多的支持。 DB_File是訪問它的基本方式,如果它是使用BDB支持構建的,則可以使用Perl。 CPAN上還有BerkeleyDB模塊,可以訪問更多的BDB接口。 http://search.cpan.org/perldoc?BerkeleyDB – Schwern 2011-05-15 19:16:04

回答

2

我使用Perl的DBI module,我可以使用它來讀取使用MySQL或SQLite的數據庫。所有你需要的是正確的驅動程序。事實上,如果您正確編寫程序,後端數據庫(無論是SQLite還是MySql)都是不相關的。你的程序可以與任一個一起工作。

但是,您不能使用SQLite數據庫,然後將其視爲MySQL數據庫。他們是兩種不同的生物。你的程序可以是數據庫不可知的,但是一旦你選擇了一個數據庫,你就不能來回切換。這就像打開Oracle數據庫作爲MySQL數據庫一樣。

有關更多信息,請參見This posting on Perl Monks

5

MySQL和SQLite是完全獨立的RDBMS系統。沒有MySQLite這樣的東西。據我所知,MySQL無法讀取SQLite數據庫。

如果你真正想要的是一個key-value存儲,也許看的Redis:http://code.google.com/p/redis/

+0

事實上,MySQL語法與SQLite有很大不同(CREATE,ALTER等)。他們非常不兼容。然而,大多數'SELECT'查詢都是。 – Rudie 2011-05-15 19:05:25

2

的BerkeleyDB由perl的很好的支持。您可以選擇舊的DB_File和功能更完備的BerkeleyDB模塊。

但有很多選擇。如果您不想運行單獨的服務器進程,請使用DBI和DBD :: SQLite或BerkeleyDB或任何AnyDBM_File模塊。對於簡單的基於服務器的鍵值存儲,有redis或舊的memcached。