我正在尝试使用JDBC通过Java程序将数据加载到表中。 我已经完成了这些步骤:
sudo nano /etc/mysql/my.cnf
然后添加:
[mysqld] local-infile = ON
[mysql] local-infile = ON
运行此程序:
代码:
Statement statement = con.createStatement();String sql="Create table tbl_user_analysis (Country varchar(10),State Varchar(20))"; statement.executeUpdate("drop table tbl_user_analysis"); statement.executeUpdate(sql); statement.executeUpdate("load data local infile /home/Asus/workspace/example/xyz into table tbl_user_analysis fields terminated by '\\t' ");
但我得到了这个例外:
线程中的异常" main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你有一个 SQL语法错误;查看与您的手册相对应的手册 MySQL服务器版本为正确的语法使用附近 ' / home / Asus / workspace / example / xyz into table tbl_user_analysi'在第1行 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在com.mysql.jdbc.Util.handleNewInstance(Util.java:411)at com.mysql.jdbc.Util.getInstance(Util.java:386)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053)at at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)at at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)at at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)at at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)at at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2788)at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1816) 在 com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1730) 在example1.example.main(example.java:281)