mysql入门避坑指南--导入导出.csv文件常见问题


    一:                                
      在导入数据出现这个错误一般是因为地址里面的斜杠使用错误。比如下面

load data local infile 'D:\road.txt'into table roadcd fields terminated by '\t';

  参考的许多资料,这里的地址都是使用单斜杠,但我却出现下面的错误信息:

‘road.txt' not found (Errcode: 2 - No such file or directory)


    如果你和我们错误信息一样的话,那就把单斜杠(\)改为双斜杠(\\)试试;

 load data local infile 'D:\\road.txt'into table roadcd fields terminated by '\t'; 

    这样的话就OK了,成功识别文件。

二:

    开启文件存取权限,mysql刚安装时默认没有文件存取权限,若导入文件时,提示信息如下

The MySQL server is running with the --secure-file-priv option so it cannot execute this statement.

表明需要开启secure-file-priv(安全文件权限),可以通过以下命令查看当前状态

SHOW VARIABLES LIKE "secure_file_priv";

若显示 secure-file-priv的value为NULL,表明没有文件读取权限。

解决方案:

1,如果secure_file_priv的value指定了一个安全文件夹,直接将.csv文件放到对应文件夹中即可,或者将secure_file_priv的value指向我们需要的文件夹。

2,如果为NULL,则需要开启安全文件权限

去掉导入的目录限制。可修改mysql配置文件(Windows下为my.ini,在安装目录中, Linux下的my.cnf),在[mysqld]下面,查看是否有:

secure_file_priv =

如上这样一行内容,如果没有,则手动添加。如果存在如下行:

secure_file_priv = /home 

这样一行内容,表示限制为/home文件夹。而如下行:

secure_file_priv =

这样一行内容,表示不限制目录,等号一定要有,否则mysql无法启动。

修改完配置文件后,重启mysql生效。

重启后:

关闭:service mysqld stop

启动:service mysqld start

再查询结果:

此时,即可进行文件的导入导出操作。

 

三,使用mysql导入本地文件时提示

"ERROR 1148 (42000): The used command is not allowed with this MySQL version"

原因是为了安全起见,MYSQL默认不允许客户端从本地载入文件 。

解决方法如下,

服务器端:

需要将local_infile这个全局变量设置为ON,登陆到MYSQL中后执行命令

show global variables like 'local_infile';

显示当前local_infile值为OFF,没有从本地载入文件权限

执行命令,将其值置为ON,开启权限。

set global local_infile=on;

然后,客户端我们还需要在启动的时候添加参数--local-infile=1,命令如下

mysql -u root -p --local-infile=1

设置完成后即可从本地载入文件了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值