我在 Ubuntu* 机器上运行 MySQL 。我检查了文件,它显示了我的数据库临时目录: */etc/mysql/my.cnf
/etc/mysql/my.cnf
... basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp ...
如图所示,我的MySQL服务器临时目录为/tmp。
/tmp
我有一个students.dat文件,该文件的内容如下:
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临时目录下,但 为什么mysql找不到 该students.dat文件 ?
ps
该 学生 表就像以下(目前已经有4个表中的记录之前运行LOAD DATA INFILE...查询):
LOAD DATA INFILE...
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)
看看从文件找不到错误第六篇文章。看来您指定LOAD DATA LOCAL INFILE是否可以使用(他们添加了LOCAL关键字)
LOAD DATA LOCAL INFILE
LOCAL