Я использую MySQL на моей Ubuntu машине. Я проверил /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
в таблицу студентов в моей базе данных:
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?
P.S.
Таблица студентов выглядит следующим образом (в таблице уже есть 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)