MySQL通过source命令执行sql文件 导入大文件

来源:导入大文件 浏览:335次 时间:2019-01-02
做网站找雨过天晴工作室
本文章来给各位朋友介绍利用mysql source命令超大文件导入方法总结,下面收集了两种解决办法,一种是把数据库分文件导出然后再导入,另一种是修改my.ini配置文件,下面我一一给各位朋友介绍。

导入1G的数据,但是在怎么都导入不了,用命令行就可以轻松搞定了。用mysql source命令可以导入比较大的文件。

 代码如下 复制代码

mysql>use dbtest;
mysql>set names utf8;
mysql>source D:/www/sql/back.sql;

通过source命令导入多个文件,可以新建一个sou.sql文件,里面存放下面的命令
例如:

 代码如下 复制代码
source d:/a1.sql;
source d:/a2.sql;

当你运行


这样就可以在一个source命令里面导入多个sql文件了。

但这样会有一个问题,如果有一100个这样的文件我们一个个去写命令肯定很麻烦,下面我百度搜索到一个解决办法

 代码如下 复制代码

新建一个all.sql
vim all.sql
在里面写入:
source 1.sql
source 2.sql
......
source 53.sql
source 54.sql
然后只要
mysql> source all.sql


另一种大文件导入解决办法,这个是用服务器管理权限的用户了


mysql source 命令导入大的sql


在mysql的安装目录下 找到 my.ini文件 加入以下代码:

 代码如下 复制代码
interactive_timeout = 120
wait_timeout = 120
max_allowed_packet = 32M


小例子
mytest_emp_dept.sql文件,内容如下:

 代码如下 复制代码
CREATE TABLE emp(eid INT PRIMARY KEY AUTO_INCREMENT, ename VARCHAR(20) NOT NULL, esex VARCHAR(10), deptid INT NOT NULL);
CREATE TABLE dept(deptid INT PRIMARY KEY AUTO_INCREMENT, dname VARCHAR(20) NOT NULL,daddress VARCHAR(200));
INSERT INTO emp(ename,esex,deptid) VALUES('chris','M',1),('edge','M',1),('kelly','W',2),('maryse','W',2);
INSERT INTO dept(dname,daddress) VALUES('development','beijing'),('accounting','shanghai');
SELECT ename,esex,dname,daddress FROM emp,dept WHERE emp.deptid=dept.deptid ORDER BY ename;

 

导入sql的命令行如下:

 

 代码如下 复制代码

source "路径名"+/mytest_emp_dept.sql

备份和恢复应该是最常用的操作了,那么通过直接执行sql文件无疑是最快捷的方式,本文通过转储sql文件,并在新数据库中执行sql文件,来介绍如何在命令行中执行sql文件

打开cmd窗口,

根据MySQL安装目录,在cmd命令下输入如下命令:

d:/mysql/bin/mysql -h localhost -u root -p

注:此处的d:/mysql/bin/mysql调整为具体安装目录,此处的localhost如果是远程连接,需要改为具体IP地址。


输入正确的密码后回车即可成功登录。



此时,选定数据库: use ymt_new (ymt_new 是数据库名

    并执行source d:/ymt.sql  ( d:/ymt.sql 是sql所在的路径 ) 命令。


待所有命令执行完毕时,在 Navicat 中打开 ymt_new 数据库,可以看到,所有的表都已经创建好了。

mysql 大文件导入导出

导出:
mysqldump -u用户名 -p密码 -hIP地址 数据库名 > /dump.sql
示例:mysqldump -uroot -proot -h127.0.0.1 test > /test.sql
将test库中所有的表和数据导入test.sql文件中。

导入:
source 导入数据的文件地址
示例:source /test.sql
导入数据时需要先连上数据库,use数据库,再进行导入数据。