日期:2014-05-16  浏览次数:20794 次

mysql导出导入超大sql语句的方法
1.cmd命令下进入mysql安装目录的bin目录下

导入运行 mysql -uroot -p yourdatabase < your.sql
输入密码 回车

导出运行 mysql -uroot -p yourdatabase > your.sql
输入密码 回车


=======================================================================
导入过程中 出现 类似"ERROR at line 633: Unknown command '\''"错误的信息
用mysqldump  -u root -p123456 db>c:\db_bak.sql导出的数据库,但在用命令
mysql -u root -p db1<c:\db_bak.sql
导入时出现"ERROR at line 633: Unknown command '\''"的错误提示,然后中断。在网上查了一下,说是字符集的问题,加上
--default-character-set=utf8,也就是用命令
mysql -u root -p --default-character-set=utf8 db1<c:\db_bak.sql
导入成功。

=====================================================================
导入过程中出现mysql service gone away解决方法

     通过Google 我找到了一个MySQL 英文论坛上找到了一个方法:在my.cnf 文件中添加 connect_timeout=120 和 wait_timeout = 1800 。由于我使用的是windows版本MYSQL,我在my.ini中的[mysqld]下面添加了这两句。重启再试,还是报错。于是改大这两个值,统统改为2880000。再重启MYSQL,导入还是报错。

      不过几遍下来,我发现了一个规律。每次报错的时候都是停在导入到25M的时候。看来应该不是超时的问题,我估计是文件大小被限制住了。最后几经寻找尝试,发现了max_allowed_packet这个参数。我设置 max_allowed_packet=56M 后,导入一举成功。官方的解释是适当增大 max_allowed_packet,可以使得client端到Server端传递大数据量的时候,系统能够分配更多的扩展内存来处理。56M是我自己设定的值,只提供参考价值,它的default值为1M。这个我目前没有来得及确认。