假如有一个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
|