小编典典

LOAD DATA INFILE不起作用

sql

我在 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临时目录下,但 为什么mysql找不到students.dat文件

ps

学生 表就像以下(目前已经有4个表中的记录之前运行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)

阅读 205

收藏
2021-03-23

共1个答案

小编典典

看看从文件找不到错误第六篇文章。看来您指定LOAD DATA LOCAL INFILE是否可以使用(他们添加了LOCAL关键字)

2021-03-23