Bug #2871 | Too restricted LOAD DATA INFILE | ||
---|---|---|---|
Submitted: | 18 Feb 2004 8:21 | Modified: | 18 Feb 2004 10:34 |
Reporter: | Peter Zaitsev (Basic Quality Contributor) | Email Updates: | |
Status: | Not a Bug | Impact on me: | |
Category: | MySQL Server | Severity: | S3 (Non-critical) |
Version: | 4.1.1 | OS: | Other (IRIX) |
Assigned to: | Dean Ellis | CPU Architecture: | Any |
[18 Feb 2004 8:21]
Peter Zaitsev
[18 Feb 2004 10:34]
Dean Ellis
The file needs to be in the subdirectory for the database itself, rather than the datadir.
[18 Feb 2004 10:56]
Paul DuBois
Peter's example may not be quite correct, but the same result occurs when you specify a filename that *is* in a database directory. Example: My data directory is /var/mysql/40018/data and I have a 400-mode file there named junk. The following two commands actually are equivalent, but only one of them works: mysql> load data infile '/var/mysql/40018/data/test/junk' into table t; ERROR 1085: The file '/var/mysql/40018/data/test/junk' must be in the database directory or be readable by all mysql> load data infile 'junk' into table t; Query OK, 27 rows affected (0.00 sec) Records: 27 Deleted: 0 Skipped: 0 Warnings: 0
[18 Feb 2004 10:57]
Paul DuBois
Correction to my previous comment: the file 'junk' is in the test subdirectory of the database directory.
[18 Feb 2004 10:58]
Paul DuBois
Arghhhhh! Correction to my previous correction: The file 'junk' is in the test subdirectory of the *data* directory, not the test subdirectory of the database directory. Where's my coffee?
[18 Feb 2004 11:07]
Dean Ellis
So, if you specify a path the file must be world-readable. If you do not, it must be within the relevant directory (and the user mysqld runs under must still be able to access it). We could convert this to a documentation bug.
[26 Mar 2012 23:50]
MySQL Verification Team
This is expected behavior and is documented here: http://dev.mysql.com/doc/refman/4.1/en/load-data.html http://dev.mysql.com/doc/refman/5.0/en/load-data.html (etc) ---------- For security reasons, when reading text files located on the server, the files must either reside in the database directory or be readable by all. ----------