Using Load Data Local Infile
MySQL Server supports a
LOAD DATA command that can bulk load data from a CSV or TSV file.
This normally loads data from a file on the server, but it can load from a file on the client by using
LOAD DATA LOCAL statement, or by setting
MySqlBulkLoader.Local = true.
If you do this, you may receive one of the following errors:
- The used command is not allowed with this MySQL version
- To use MySqlBulkLoader.Local=true, set AllowLoadLocalInfile=true in the connection string.
- To use LOAD DATA LOCAL INFILE, set AllowLoadLocalInfile=true in the connection string.
- Use SourceStream or SslMode >= VerifyCA for LOAD DATA LOCAL INFILE.
LOAD DATA LOCAL INFILE is disabled by default because it poses a security risk. A
malicious server or proxy could send a fake “local infile request” packet to the client and
read any file that the client has permission to open.
For more information, see the MySQL documentation.
How to Fix
LOAD DATA LOCAL INFILE to succeed, you must set
in the client’s connection string.
If you use
MySqlBulkLoader and set
Local=true, then everything should work by default.
If you are manually creating a
LOAD DATA LOCAL INFILE statement, you must be connected
to a trusted server. This requires specifying
SslMode=VerifyFull in the
connection string. Alternatively, rewrite the code to use