mysql中的LOAD DATA 导致 ERROR 13 解决办法
mysql> LOAD DATA INFILE ‘/root/hello.txt’ INTO TABLE dbtest.pet(name);———–>
ERROR 13 (HY000): Can’t get stat of ‘/root/hello.txt’ (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/hello.txt' INTO TABLE
dbtest.pet(name);
方法2:
第一步:移动文件到数据库目录
shell>mv /root/hello.txt /usr/local/mysql/data/dbtest
第二步:
mysql>LOAD DATA INFILE '/usr/local/mysql/data/dbtest/hello.txt' INTO TABLE dbtest.pet(name);
表结构: