无法导入大型mysql转储

时间:2014-05-03 05:49:42

标签: mysql sql windows import

我有一个名为dbBACKUP.sql的mysql转储大约152 MB。它有数千条记录。我使用以下命令导入它:

mysql -u root -p --default-character-set=utf8 phpbb3 < dbBACKUP.sql

提供root的密码后,我转到phpmyadmin检查导入数据库的数据。我注意到总行数和总大小(以MB为单位)的更改导入的数据量增长缓慢,直到每次刷新phpmyadmin时似乎没有任何变化。

我认为这可能是服务器的内存问题。是否有任何配置设置允许增加MySQL使用的内存。甚至是任何提高此任务性能的解决方案?

这是在我自己的基于Windows 7 64bit的桌面上发生的。 Mysql服务器是5.6.16

3 个答案:

答案 0 :(得分:3)

我进行了谷歌搜索,发现此博客可能对您有所帮助:http://cmanios.wordpress.com/2013/03/19/import-a-large-sql-dump-file-to-a-mysql-database-from-command-line/

-- connect to database
mysql -u root -p

-- set network buffer length to a large byte number.
set global net_buffer_length=1048576;

-- set maximum allowed packet size to a large byte number.
set global max_allowed_packet=1073741824;

-- set read buffer size to a large byte number.
set global read_buffer_size=2147479552;

-- disable foreign key checking to avoid delays,errors and unwanted behaviour 
SET foreign_key_checks = 0;

-- import your sql dump file
source C:\[your_path]\dbBACKUP.sql

-- enable foreign key checking after import
SET foreign_key_checks = 1;

答案 1 :(得分:2)

尝试使用SOURCE命令而不是重定向sql文件。

mysql -u root -p --default-character-set=utf8
use phpbb3
source /full/path/to/your/dbBACKUP.sql

答案 2 :(得分:1)

此外,您必须为客户端和守护程序mysqld服务器更改它。更改[mysqld]部分下的my.cnf或my.ini文件并设置max_allowed_pa​​cket = 1000M,或者您可以在连接到同一服务器的MySQL控制台中运行这些命令:

    set global net_buffer_length=1000000000; 
    set global max_allowed_packet=1000000000;

对数据包大小使用非常大的值,因为它们以字节为单位,然后重新启动MySQL服务器。