我在我的 Ubuntu 机器上运行 MySQL。我检查了 /etc/mysql/my.cnf
文件,它显示了我的数据库临时目录:
...
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
...
如图所示,我的 MySQL 服务器临时目录是 /tmp
。
我有一个students.dat
文件,这个文件的内容如下:
...
30 kate name
31 John name
32 Bill name
33 Job name
...
我将上面的students.dat
文件复制到/tmp
目录。然后,我运行以下命令将数据从 students.dat
文件加载到我数据库中的 students 表:
LOAD DATA INFILE '/tmp/students.dat'
INTO TABLE school_db.students
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
(student_id, name, attribute)
但我在 MySQL 控制台中收到错误消息:
ERROR 29 (HY000): File '/tmp/students.dat' not found (Errcode: 13)
为什么mysql找不到students.dat
文件虽然文件在mysql临时目录下?
附言
students 表如下(在运行 LOAD DATA INFILE...
查询之前表中已经有 4 条记录):
mysql> describe students;
+-------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+-------+
| student_id | int(11) | YES | | NULL | |
| name | varchar(255) | YES | MUL | NULL | |
| attribute | varchar(12) | YES | MUL | NULL | |
| teacher_id | int(11) | YES | | NULL | |
+-------------------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
最佳答案
查看来自file not found error 的第六篇帖子.似乎如果您指定 LOAD DATA LOCAL INFILE
应该可以工作(他们添加了 LOCAL
关键字)
关于mysql - LOAD DATA INFILE 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8471727/