mysql load报错_mysql:执行LOAD DATA LOCAL 报错

在使用SecureCRT连接MySQL服务器执行LOAD DATA LOCAL INFILE命令时遇到错误,提示不允许此命令。通过检查变量`local_infile`确认其已开启。最终通过在命令行中添加`--local-infile=1`参数成功执行了数据导入。该问题可能由于不同连接工具或命令行选项设置导致。

mysql:执行LOAD DATA LOCAL 报错。

我使用navicat for mysql 连接 mysql服务器执行local 可以正常执行 。

show VARIABLES like  ‘%local%infile%‘

结果如下:

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| local_infile  | ON    |

+---------------+-------+

1 row in set (0.00 sec)

使用SecureCRT连接到mysql服务器执行

load /usr/local/mysql/bin/mysql -uroot -h192.168.0.2 -proot databaseName  -e "LOAD DATA LOCAL INFILE ‘data.txt‘ into table test(name,sex) "

就报错。

错误如下:

Error line: sql:

LOAD DATA LOCAL INFILE "/opt/BOCO.DAL/NPM/ODBCTEMP/4101_11111/load2db/ecp_smt.unl" IGNORE INTO TABLE ecp_smt_11111  FIELDS TERMINATED BY ‘      ‘ ;

Error, execute info:

LOAD DATA LOCAL INFILE  The used command is not allowed with this MySQL version

是在没办法就在mysql 命令中加上了 --local-infile=1,没想到执行成功了 。

命令如下:

/usr/local/mysql/bin/mysql -uroot -h192.168.0.2 -proot databaseName --local-infile=1 -e "LOAD DATA LOCAL INFILE ‘data.txt‘ into table test(name,sex) "

--local-infile=1解释如下:是否使服务器支持LOAD DATA LOCAL INFILE  命令。

默认情况下,服务器是支持的 。所以默认情况下 --local-infile=1 的 。

所以在一般情况下执行

/usr/local/mysql/bin/mysql -uroot -h192.168.0.2 -proot databaseName  -e "LOAD DATA LOCAL INFILE ‘data.txt‘ into table test(name,sex) "

是不会报错的。

如果报错了 ,就显示加上--local--infile=1 就行了。

over!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

原文:http://dwchaoyue.blog.51cto.com/2826417/1408523

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值