首页 >数据库 >mysql教程 >为什么使用 LOAD DATA INFILE 时 MySQL 无法访问我的文件?

为什么使用 LOAD DATA INFILE 时 MySQL 无法访问我的文件?

Linda Hamilton
Linda Hamilton原创
2024-11-03 20:21:02631浏览

Why Can't MySQL Access My File When Using LOAD DATA INFILE?

LOAD DATA INFILE 错误代码:13

尝试在远程服务器上使用 LOAD DATA INFILE 命令将数据加载到 MySQL 表中时,您可能会遇到错误代码:13:“无法获取 '/httpdocs/.../.../testFile.csv' 的统计信息(错误代码:2)”。这表明 MySQL 无法访问指定的文件。

以下步骤可以帮助解决此问题:

1.授予足够的权限

确保数据库用户有足够的权限来访问该文件。考虑授予用户 SELECT、FILE 和 LOAD DATA 权限:

GRANT SELECT, FILE, LOAD DATA ON *.* TO 'userName'@'%'

2.设置文件和文件夹权限

确保文件和文件夹权限允许MySQL读取文件。将文件权限设置为 644 (rw-r--r--),将文件夹权限设置为 755 (rwxr-xr-x):

<code class="bash">chmod 644 /httpdocs/.../.../testFile.csv
chmod 755 /httpdocs/.../.../</code>

3。检查Apparmor设置

在Ubuntu系统上,Apparmor可以限制MySQL对文件的访问。要允许 MySQL 从“tmp”目录读取文件,请将以下行添加到 /etc/apparmor.d/usr.sbin.mysqld:

/tmp/** rwk

使用以下命令重新加载 Apparmor:

<code class="bash">sudo /etc/init.d/apparmor reload</code>

4。禁用SELinux

如果使用SELinux(安全增强型Linux),它还可以限制文件访问。尝试暂时禁用它并重新运行 LOAD DATA INFILE 命令。请参阅 SELinux 文档以获取具体说明。

附加说明:

  • 确保 LOAD DATA INFILE 语句中指定的文件路径正确且可由 MySQL 访问.
  • 考虑使用 mysqlimport 或 mysql.connector 等数据导入工具来导入数据。

以上是为什么使用 LOAD DATA INFILE 时 MySQL 无法访问我的文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn