linux下mysql 文件导入导出

Posted 记录学习的点点滴滴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下mysql 文件导入导出相关的知识,希望对你有一定的参考价值。

最近在做mysql的数据导入导出得到的一些经验,记录下。

1.首先要开通导入导出的功能,需要设置一个mysql的配置

可以在 my.conf 文件的最后增加配置项 secure-file-priv=‘‘

用这个命令查到当前的设置 

SHOW VARIABLES LIKE ‘%secure_file_priv%‘;
如果为 NULL 表示禁止导入导出,如果指定了具体路径,则导入导出必须在这个路径下,如果为空字符串,则可以导出到任意路径(必须要有足够权限写任意的路径权限)

如果权限不够则可以默认到mysql的数据文件目录;

没有设置的错误信息,
错误代码: 1290
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement



2.权限问题,在windows下权限问题好解决。在linux下 mysql的用户权限有限,所以我只能默认导出的mysql的数据文件下。

-- 如果指定路径则需要当前用户具有很高的权限才行,默认的话基本可以导出
-- 默认路径为mysql的数据文件存放路径 可以用这个命令查看文件放哪个路径
SHOW VARIABLES LIKE ‘%datadir%‘

SELECT * INTO OUTFILE ‘2.txt‘ FIELDS TERMINATED BY ‘,‘ ENCLOSED BY ‘\"‘ LINES TERMINATED BY ‘\n‘ FROM mtdwgl_syn.irms_trans_pipehole; 

LOAD DATA INFILE ‘/data/mysql/2.txt‘ INTO TABLE mtdwgl_res.tb_irms_trans_pipehole CHARACTER SET utf8 FIELDS TERMINATED BY ‘,‘ ENCLOSED BY ‘\"‘ LINES TERMINATED BY ‘\n‘;

3.经过测试2300W条记录

导出花了1分46秒

SELECT * INTO OUTFILE ‘2.txt‘ FIELDS TERMINATED BY ‘,‘ ENCLOSED BY ‘\"‘ LINES TERMINATED BY ‘\n‘ FROM mtdwgl_syn.irms_trans_pipehole; 
Query OK, 23040110 rows affected (1 min 46.01 sec)

导入花了 3分22秒

LOAD DATA INFILE ‘/data/mysql/2.txt‘ INTO TABLE mtdwgl_res.tb_irms_trans_pipehole CHARACTER SET utf8 FIELDS TERMINATED BY ‘,‘ ENCLOSED BY ‘\"‘ LINES TERMINATED BY ‘\n‘; 
Query OK, 23040110 rows affected (3 min 22.10 sec)
Records: 23040110 Deleted: 0 Skipped: 0 Warnings: 0

文件大小,测试的是2.txt文件,4.8G

sudo du -h /data/mysql/*.txt
480M /data/mysql/1.txt
4.8G /data/mysql/2.txt

  

以上是关于linux下mysql 文件导入导出的主要内容,如果未能解决你的问题,请参考以下文章

linux下mysql导出与导入sql文件

linux下mysql导入导出sql文件

Linux 环境下 MySQ导入和导出MySQL的sql文件

Linux 中 数据 导出 导入sql

Linux系统下MySQL导出数据库和导入数据库的命令

Linux数据库的创建 导入导出 以及一些基本指令