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