MySQL LOAD_FILE 函数是要成功执行的几个条件。
- 您尝试加载的文件必须存在于运行 MySQL 服务器的同一主机中。例如,如果您的 MySQL 服务器安装在 example.com 上,则文件必须仅存在于 example.com 上。
- 必须指定文件的完整路径名。因此,如果您的文件位于用户的主目录中,假设用户名 w3r,则必须指定“/home/w3r/somefile.txt”
- 执行命令的用户必须具有 FILE 权限。您可以通过以下“GRANT FILE on dbname.* TO user@localhost”向用户授予 FILE 权限。
- 有问题的文件必须所有人都可以阅读。如果您尝试加载用户主目录层次结构中不存在的文件,请确保您对该文件具有读取权限。
- MySQL 服务器有一个 max_allowed_packet 变量。有问题的文件不得超过该变量中指定的值。您可以使用 'show variables like '%max_allowed_packet%';' 来检查 max_allowed_packet 的值;您必须具有 MySQL root 权限才能执行此命令。您在 MySQL 配置文件中更改 max_allowed_packet 的值。打开您的 my.ini 或 my.cnf 文件,找到行 max_allowed_packet=some_value 并将值更改为您想要的值,例如,如果您想将 valle 设置为 50MB,则写入 50MB。
- MySQL 有一个 secure_file_priv 变量。如果该变量的值设置为非空目录名,则要加载的文件必须位于该目录中。您可以找到 secure_file_priv 变量及其值,并可以在您的 MySQL 配置文件中更改它。