RDS for MySQL 不支持 load data infile,因为这个命令要求要导入的文件必须放在 RDS 服务器上。但支持加上 local 关键字的命令, 加上 local 后是从客户端机器导入文件, 下面介绍如何使用 load data local infile 向 RDS 导入数据。
操作步骤
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在RDS for MySQL中使用LOAD DATA LOCAL INFILE
命令导入数据时,需确保客户端已正确配置以允许本地文件导入。以下是详细的操作步骤和说明:
客户端配置:
/etc/mysql/my.cnf
),在[mysql]
段下添加以下行以启用local-infile
功能:
[mysql]
local-infile=1
RDS参数设置:
local_infile
参数,将其值设置为ON
并提交更改。执行导入命令: 使用如下命令格式从客户端机器导入数据到RDS中的表:
LOAD DATA LOCAL INFILE '/root/data.txt'
INTO TABLE tld
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
INTO TABLE tld
: 指定目标表名为tld
。FIELDS TERMINATED BY ','
: 设置字段分隔符为逗号。LINES TERMINATED BY '\n'
: 表示行之间以换行符分隔。若文件来源于Windows系统,请考虑使用\r\n
作为行分隔符。处理主键冲突:
REPLACE INTO
替换现有记录:LOAD DATA LOCAL INFILE ... REPLACE INTO TABLE ...
IGNORE
忽略重复记录:LOAD DATA LOCAL INFILE ... IGNORE INTO TABLE ...
验证导入结果: 执行查询检查导入是否成功:
SELECT * FROM tld;
注意事项: - 确保在连接RDS时使用的客户端工具或命令行工具已加上-local-infile
选项,例如:mysql -u username -p -h hostname -P port --local-infile=1
。 - 导入前请确认数据文件的格式与LOAD DATA
命令中的字段分隔符、行结束符等设置相匹配。 - 考虑到操作的安全性,建议在业务低峰期进行数据导入,并确保有数据备份以防不测。
如果按照上述步骤操作后问题仍未解决,建议联系阿里云售后技术支持获取进一步帮助。