纳速健身

标题: mysql导入大数据的方法 [打印本页]

作者: awagink    时间: 2014-9-26 12:43
标题: mysql导入大数据的方法
假如有一个300M的mysql数据库让你导入,你会使用什么方法呢?目前我使用的有3种方法
假设300M的数据存在再D盘根目录下,名字为dbname.sql
1、使用mysql命令。
首先用phpmyadmin建立一个数据库mydata.
windows下的cmd命令,mysql -u root -p111111 mydata < d:/dbname.sql

2.使用source命令
cocuments and Settings/> cd e:/xampp/mysql/bin
e:/xampp/mysql/bin> mysql -u root -p
password:
mysql>use mydata;
mysql>charset utf8;(导入文件的编码gbk)
mysql>source d:/dbname.sql;

3.使用mysql工具
Navicat for MySQL是一个管理mysql的软件,使用类似于sql server.
选中数据库mydata,右击出现“运行sql文件”,直接把d:/dbname.sql选择就好了,直接导入

================================================================

收藏

mysql在通过导入sql文件可能会出现下面二个问题:

1.如果sql文件过大,会出现"MySQL server has gone away"问题;

2.如果sql文件数据有中文,会出现乱码  www.2cto.com  

解决问题:

问题1:出现MySQL server has gone away"问题,是因为mysql默认的"max_allowed_packet"变量值过小.
查看目前配置

show VARIABLES like '%max_allowed_packet%';

显示的结果为:

+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+

说明目前的配置是:1048576/1024/1024 = 1M

修改max_allowed_packet值:

方法1: SET GLOBAL max_allowed_packet = 500*1024*1024;(经测试无效)

方法2: 直接修改配置文件,重启mysql  www.2cto.com  
             windows中修改my.ini文件,在linux中修改my.cnf文件.
             C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\my.ini(安装mysql时的,指定的数据文件目录)
            


            重启mysql后,在查看修改后的max_allowed_packet值



问题2:登录时指定字符集编码
            mysql -uroot -P3308 -p123456  - -default-character-set=utf8  (-P是指指定端口号)

         
最后通过source命令 即可成功导入:
              source  E:ydj\test.sql

            










欢迎光临 纳速健身 (https://nasue.com/) Powered by Discuz! X3.4