无法导入大型mysql转储

问题描述 投票:3回答:3

我有一个名为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

mysql sql windows import
3个回答
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;

2
投票

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

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

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服务器。

© www.soinside.com 2019 - 2024. All rights reserved.