在大多数共享主机上是否禁用LOAD DATA INFILE?

时间:2019-02-24 20:22:48

标签: mysql database load hosting

我想在我的插件软件中使用LOAD DATA INFILE显着加快MySQL导入过程。我听说有些共享主机禁用了此(很棒的)功能。这是对的吗?如果是,为什么他们要这样做,并且有可能以某种方式模仿它吗?我的软件旨在在共享主机上成功运行。

1 个答案:

答案 0 :(得分:1)

由于LOAD DATA INFILE需要特殊特权,因此大多数共享主机提供商都没有提供这些特权:

  

LOCAL加载操作读取服务器上的文本文件。对于   出于安全原因,此类操作要求您拥有FILE   特权。请参见第6.2.1节“ MySQL提供的特权”。也,   非LOCAL的加载操作受secure_file_priv系统的约束   变量设置。如果变量值是非空目录名称,   要加载的文件必须位于该目录中。如果   变量值是空的(不安全),文件只需要   服务器可读。

     

使用LOCAL比让服务器访问文件要慢一些   直接,因为文件内容必须通过连接发送   由客户端到服务器。另一方面,您不需要   拥有加载本地文件的FILE特权。

documentation

MySQL文档中有一个section dedicated to optimizing INSERT,它提示如何加快插入操作。