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!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!