2024年5月7日发(作者:)

mysql中的LOAD DATA 导致 ERROR 13 解决办法

mysql> LOAD DATA INFILE ‘/root/’ INTO TABLE (name);

———–>

ERROR 13 (HY000): Can’t get stat of ‘/root/’ (Errcode: 13)

第一步:我们通过mysql的客户端工具perror进行分析

shell> ./bin/perror 13

OS error code 13: Permission denied

得出是权限的问题

第二步我们查看mysql手册

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. Also, to

use LOAD DATA

INFILE on server files, you must have the FILE privilege

也就是说有三个条件:

1.数据文件要在数据库目录

2.要能被读写

3.使用这个命令的用户要有FILE权限

好了,最后,我们来修改下我们的命令:

方法1:

mysql> LOAD DATA LOCAL INFILE '/root/' INTO TABLE

(name);

方法2:

第一步:移动文件到数据库目录

shell>mv /root/ /usr/local/mysql/data/dbtest

第二步:

mysql>LOAD DATA INFILE '/usr/local/mysql/data/dbtest/' INTO

TABLE (name);

表结构:

mysql>DESCRIBE pet;

+——-+————-+——+—–+———+—————-+

| Field | Type | Null | Key | Default | Extra |

+——-+————-+——+—–+———+—————-+

| id | int(10) | NO | PRI | NULL | auto_increment |

| name | varchar(50) | YES | | NULL | |

+——-+————-+——+—–+———+—————-+

2 rows in set (0.00 sec)

文章作者:佛福

本文地址:/

版权所有 © 转载时必须以链接形式注明作者和原始出处!