linux mysql导出txt文件_linux下mysql 文件导入导出

本文介绍了在Linux环境中进行MySQL数据的导入导出操作,包括如何解决权限问题和提高效率。通过设置`secure-file-priv`参数来启用导入导出功能,并演示了从表中导出数据到TXT文件以及将文件导入到表的过程,展示了不同规模数据的耗时情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值