我有一个名为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
答案 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_packet = 1000M,或者您可以在连接到同一服务器的MySQL控制台中运行这些命令:
set global net_buffer_length=1000000000;
set global max_allowed_packet=1000000000;
对数据包大小使用非常大的值,因为它们以字节为单位,然后重新启动MySQL服务器。