2 hanbing521 hanbing521 于 2017.01.16 14:03 提问

java +mysql LOAD DATA INFILE mysql中执行正常,java报错???

LOAD DATA INFILE '/txt/test.txt' INTO TABLE test LINES TERMINATED BY '\r\n'
java.sql.SQLException: Could not retrieve transation read-only status server
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:877)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:873)
at com.mysql.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:3603)
at com.mysql.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:3572)
at com.mysql.jdbc.StatementImpl.executeInternal(StatementImpl.java:759)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:739)
at LoadDateFile.main(LoadDateFile.java:45)
Caused by: java.sql.SQLException: Unknown system variable 'tx_read_only'
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3970)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3906)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2677)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2545)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2503)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1369)
at com.mysql.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:3597)
... 4 more

            public static void main(String[] args) {

    try {
        //System.out.println("start;");
        Class.forName("com.mysql.jdbc.Driver");
        //System.out.println("com.mysql;");
        conn = DriverManager.getConnection(url,user,password);
        System.out.println("conn:");
        stmt = conn.createStatement();
        // System.out.println("load date infile");
        String sql = "LOAD DATA INFILE  '/txt/test.txt'  INTO TABLE test  LINES TERMINATED BY '\\r\\n' ";
        //sql="SELECT * FROM test";
        // sql = "load data infile 'E:/mysqlsql/test.txt' replace into table test character set GBK fields terminated by ',' enclosed by '\'' lines terminated by '\r\n'";
        System.out.println(sql);
        boolean result = stmt.execute(sql);

        System.out.println("Load执行结果:" + result);

    }catch(Exception e){
        e.printStackTrace();
    }
}

2个回答

theUncle
theUncle   Rxr 2017.01.19 11:14
pm_mybook
pm_mybook   2017.01.20 17:17

LOAD DATA LOCAL INFILE 'test.txt' INTO TABLE test LINES TERMINATED BY '\r\n';改成这个试试

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java不写文件,LOAD DATA LOCAL INFILE大批量导入数据到MySQL的实现
Mysql loaddata的使用           数据库中,最常见的写入数据方式是通过SQLINSERT来写入,另外就是通过备份文件恢复数据库,这种备份文件在MySQL中是SQL脚本,实际上执行的还是在批量INSERT语句。         在实际中,常常会遇到两类问题:一类是数据导入,比如从word、excel表格或者txt文档导入数据(这些数据一般来自于非技术人员通过OFF
Linux下使用MySQL"load data infile"出错的问题
由于数据量大,使用insert开销较多,因此使用LOAD DATA INFILE '/home/data/data.dat' INTO TABLE MYTable 在windows上跑没什么问题,但是到了Linux上就开始报错: Mysql2::Error: Can't get stat of '/home/data/data.dat' (Errcode: 2): LOAD DATA INF
【数据库】load data infile上亿条的海量数据导入mysql的那些事
因为做股票金融的,每天产生的数据量是很大的,一个月几十亿的交易记录,也常有出现,特别是今年大跌之前大涨那会。 作为程序员,问题来了,有时需要将一些并不是特别符合规范的csv文件导入数据库中,而且每个文件有十几万行,而这样的文件几万个,于是几十亿的记录如何导入数据库呢?很多想着常用的方法,就是将csv文件读出来,然后一条条插到数据库,或者批量插到数据库,或者开个多线程,然而,花费的时间必须是几十天
关于MYSQL LOAD DATA LOCAL INFILE 支持问题
关于MYSQL LOAD DATA LOCAL INFILE 支持问题 执行报错:ERROR 1148 (42000): The used command is not allowed with this MySQL version 解决方法: 先进入MYSQL检查一下版本号:5.1或者以上的都支持。 mysql> select version() 1.由于MYSQL编译安装时默认不
mysql load data infile 导入的各种问题
1.linux下(mysql 5.6.36) a> 查看参数配置(已经开启,如果secure_file_priv 为NULL表示没开启,需要小伙伴们手动修改my.ini配置文件开启) +------------------+------------------------+ | Variable_name | Value | +------------...
mysql load data infile 解决大数据导入
LOAD DATA INFILE语句用于高速地从一个文本文件中读取行,并装入一个表中。文件名称必须为一个文字字符串。 LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TER
mysql使用load data infile的一些解决方法
mysql 使用load data infile的时候遇到的一些问题以及解决方法: http://blog.csdn.net/yangguangqizhi/article/details/50505059 http://hunan.iteye.com/blog/752606
MySQL学习笔记---- LOAD DATA LOCAL INFILE中文乱码
借阅了学校图书馆里面的一本关于JSP的书《JSP课程设计案例精编》来复习JSP相关的技术。再查阅书中相关项目代码时也学习了很多,关于数据库的也学习到不少,好的方法记下,留待以后工作使用。          首先关于数据库数据的导入也学习到一个新方法          LOAD DATA LOCAL INFILE 'C:/Users/Administrator/Desktop/user_info
MySQL远程导入数据LOAD DATA LOCAL INFILE ...
假设客户端与MYSQL服务器不在同一机器 导入文件在客户端机器上/usr/jfy/tmp/scpcdr.txt,在客户机登录mysql后,执行下面导入语句: LOAD DATA LOCAL INFILE  "/usr/jfy/tmp/scpcdr.txt" into table scpcdr fields TERMINATED by '|'; 正常情况是可以成功的,如果出现提示:
PHP的PDO执行MYSQL的LOAD DATA INFILE样例代码
$dsn = 'mysql:dbname=name;host=ip;port=3306'; $user = 'user'; $pwd = 'password'; // 这里PDO::MYSQL_ATTR_LOCAL_INFILE => true需要设置; $options = [PDO::MYSQL_ATTR_LOCAL_INFILE => true]; $db = new PDO($...