You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决R连接MySQL上传数据时‘加载本地数据被禁用’的错误

解决MySQL本地数据加载禁用导致的R数据上传错误

方法1:在R的数据库连接中启用客户端本地加载权限

错误核心是MySQL默认禁止本地数据导入,需要在R建立连接时开启客户端的local_infile选项,同时改用更直接的dbWriteTable上传数据:

library(RMySQL)
library(DBI)

# 建立连接时添加local_infile=TRUE参数
mydb <- DBI::dbConnect(MySQL(),
                 user='user',
                 password='password',
                 dbname='sakila',
                 host="127.0.0.1",
                 local_infile=TRUE)

# 上传mtcars数据集,设置row.names=FALSE避免行名被当成列,overwrite=TRUE覆盖已存在的表
DBI::dbWriteTable(mydb, name = "mtcars", value = mtcars, overwrite = TRUE, row.names = FALSE)

方法2:永久开启MySQL服务器端的本地加载权限

如果客户端开启后仍报错,需要修改服务器配置:

  • 找到MySQL配置文件(Linux一般为/etc/mysql/my.cnf,Windows在安装目录下的my.ini)
  • 在[mysqld]区块添加:local_infile=1
  • 重启MySQL服务:Linux执行sudo systemctl restart mysql,Windows在服务管理器中重启MySQL服务

方法3:临时开启服务器端本地加载权限(会话级)

不想修改配置文件的话,登录MySQL客户端执行以下命令,重启MySQL后失效:

SET GLOBAL local_infile = 1;

额外注意事项

  • 确保你的MySQL用户拥有FILE权限,若没有执行以下授权命令:
GRANT FILE ON *.* TO 'user'@'127.0.0.1';
FLUSH PRIVILEGES;
  • 若使用ODBC连接,需在ODBC数据源配置中勾选“Allow local infile”选项。

内容的提问来源于stack exchange,提问作者JohnBones JohnBones

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 08:40:28