我正在尝试使用数据加载到mysql数据库
LOAD DATA LOCAL
INFILE A.txt
INTO DB
LINES TERMINATED BY '|';
Run Code Online (Sandbox Code Playgroud)
这个问题的主题是我得到的回应.我理解默认情况下本地数据卸载是关闭的,我必须使用命令启用它,local-infile=1但我不知道在哪里放置此命令.
ark*_*cha 91
您可以在设置客户端连接时将其指定为附加选项:
mysql -u myuser -p --local-infile somedatabase
Run Code Online (Sandbox Code Playgroud)
这是因为该功能打开了一个安全漏洞.因此,您必须以明确的方式启用它,以防您真正想要使用它.
客户端和服务器都应启用local-file选项.否则它不起作用.要为服务器端服务器上的文件启用它,请在my.cnf配置文件中添加以下内容:
loose-local-infile = 1
Run Code Online (Sandbox Code Playgroud)
Jav*_* Xu 39
我在这里找到答案.
这是因为服务器变量local_infile设置为FALSE | 0.请参阅文档.
您可以通过执行来验证:
SHOW VARIABLES LIKE 'local_infile';
Run Code Online (Sandbox Code Playgroud)
如果您具有SUPER权限,则可以通过执行以下命令启用它(无需使用新配置重新启动服务器):
SET GLOBAL local_infile = 1;
Run Code Online (Sandbox Code Playgroud)
小智 14
带有默认 MySQL 连接器的 SpringBoot 2.1
要解决此问题,请按照说明进行操作
要设置此全局变量,请按照 MySQL 文档https://dev.mysql.com/doc/refman/8.0/en/load-data-local.html 中提供的说明进行操作
allowLoadLocalInfile=true 示例:jdbc:mysql://localhost:3306/xxxx?useSSL=false&useUnicode=yes&characterEncoding=UTF-8&allowLoadLocalInfile=true
Vér*_*ace 12
http://dev.mysql.com/doc/refman/5.6/en/load-data-local.html
把它放在my.cnf中 - 该[client]部分应该已经存在(如果你不太担心安全性).
[client]
loose-local-infile=1
Run Code Online (Sandbox Code Playgroud)
也遇到了这个问题,尝试使用Windows 上的MySQL Workbench将 .csv 数据从我的本地机器上传到 AWS RDS 实例。
我需要添加的内容OPT_LOCAL_INFILE=1是:连接 > 高级 > 其他。注意大写是必需的。
我在 AWS Developer Forums 中找到了PeterMag 的这个答案。
欲了解更多信息:
SHOW VARIABLES LIKE 'local_infile';已经返回ON
,查询是:
LOAD DATA LOCAL INFILE 'filepath/file.csv'
INTO TABLE `table_name`
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
Run Code Online (Sandbox Code Playgroud)
从上面引用的答案来源复制:
显然这是 MYSQL Workbench V8.X 中的一个错误。除了本线程前面显示的配置,您还需要更改 Workbench 中的 MYSQL 连接,如下所示:
- 转到显示所有连接的 MYSQL 的欢迎页面
- 选择管理服务器连接(小扳手图标)
- 选择您的连接
- 选择高级选项卡
- 在其他框中,添加 OPT_LOCAL_INFILE=1
现在我可以在 MYSQL RDS 上使用 LOAD DATA LOCAL INFILE 查询。似乎不需要 File_priv 权限。*
所有这些都没有在我全新的Ubuntu 15.04上为我解决.
我删除了LOCAL并得到了这个命令:
LOAD DATA
INFILE A.txt
INTO DB
LINES TERMINATED BY '|';
Run Code Online (Sandbox Code Playgroud)
但后来我得到了:
MySQL said: File 'A.txt' not found (Errcode: 13 - Permission denied)
Run Code Online (Sandbox Code Playgroud)
这让我从尼尔森回答了另一个关于stackoverflow的问题,这个问题解决了我的问题!
小智 6
我在 AWS MySQL 8.0 RDS 中导入 CSV 文件时遇到了同样的问题。
mysql> LOAD DATA LOCAL INFILE '/tmp/your.csv' INTO TABLE test.demo2 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES;
ERROR 1148 (42000): 此 MySQL 版本不允许使用的命令
1) 检查local_infile参数
mysql> SHOW VARIABLES LIKE 'local_infile';
Run Code Online (Sandbox Code Playgroud)
2) 从客户端注销并使用以下参数重新登录。
mysql -u root -p -h rdsendpoint --local-infile=1
Run Code Online (Sandbox Code Playgroud)
3)运行相同的命令
mysql> LOAD DATA LOCAL INFILE '/tmp/your.csv' INTO TABLE test.demo2 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES;
Query OK, 300 rows affected (0.01 sec)
Records: 300 Deleted: 0 Skipped: 0 Warnings: 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
111417 次 |
| 最近记录: |