如何将一个庞大的维基百科SQL文件导入到MySQL数据库中?

3
我需要一个包含“主题”的数据库表,因此我下载了维基百科类别的SQL文件(在http://dumps.wikimedia.org/enwiki/latest/上的enwiki-latest-category.sql.gz)

该文件大小为74MB(未压缩),而mysql的限制是32MB。我该如何导入此文件呢?

顺便说一下:我尝试了bigdump(http://www.ozerov.de/bigdump/),但它似乎也有32MB的导入限制。


我会在文本编辑器中打开文件并删除其中的一堆内容。大约15秒钟问题就解决了。 - goat
你不能改变限制吗?我相信在MySQL配置中有一个选项可以更改它。 - svick
你是如何尝试导入文件的?你是在尝试导入本地的MySQL吗? - Nesim Razon
我正在尝试通过创建一个新表将SQL文件导入到我的现有数据库中。 - Tomi Seus
克里斯,用文本编辑器编辑这个文件真是一场噩梦,因为它太大了! - Tomi Seus
这个回答解决了你的问题吗?如何使用MySQL命令行导入SQL文件? - Martin Urbanec
2个回答

0

如果您在Windows桌面上安装了mysql,我有一个疯狂的想法,您可能想尝试一下。

请在本地mysql框中执行以下步骤

  • 步骤01)将文件enwiki-latest-category.sql.gz解压缩到enwiki-latest-category.sql

  • 步骤02)CREATE DATABASE mycat;

  • 步骤03)`mysql -u... -p... -Dmycat < enwiki-latest-category.sql

  • 步骤04)导出类别表的CREATE TABLE

    mysqldump -u... -p... --no-data mycat category > category_00.sql

  • 步骤05)将数据分成10个部分进行转储。由于AUTO_INCREMENT为134526529,将其四舍五入为135000000(1.35亿)。每次转储20%(2700万)

只需使用--where选项运行5个mysqldumps来针对cat_id进行操作即可。

mysqldump -u... -p... --no-create-info mycat category --where="cat_id <=  27000000"                         | gzip > category_01.sql.gz
mysqldump -u... -p... --no-create-info mycat category --where="cat_id  >  27000000 AND cat_id <=  54000000" | gzip > category_02.sql.gz
mysqldump -u... -p... --no-create-info mycat category --where="cat_id  >  54000000 AND cat_id <=  81000000" | gzip > category_03.sql.gz
mysqldump -u... -p... --no-create-info mycat category --where="cat_id  >  81000000 AND cat_id <= 108000000" | gzip > category_04.sql.gz
mysqldump -u... -p... --no-create-info mycat category --where="cat_id  > 108000000"                         | gzip > category_05.sql.gz

上传这6个文件,解压缩它们,按顺序加载它们。

试一下吧!!!


0

您可以将其分成32MB的块并逐个导入。这不应该太耗时。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接