无法使用crontab将非英语字符插入数据库以运行该程序

时间:2013-10-29 07:55:55

标签: mysql database linux jdbc crontab

我使用crontab每天自动运行一些程序。 从7天前开始,每当我自动运行一个程序(每天凌晨3点),在数据库中的表中插入一些字符串(包含数字,英文和非英文字母),只插入数字和英文字符(ASCII字符)数据库,但在那之前它工作正常。 但是当我自己运行程序时,其他字符也将插入到表中。

另一方面,我在凌晨2点用crontab运行另一个程序,并且还将一些字符串插入到同一个数据库(但是不同的表),但它工作正常,并且所有字符(英语和非英语)都插入到数据库中。

服务器操作系统是centOS 6.3最小版本,我正在使用MySql数据库5.1.61,我的数据库排序规则是:utf8-utf8_general_csi。 在这两个程序中,我使用java及其jdbc库。

我只对crontab表示怀疑。 我会感谢任何帮助。

编辑:
这是我制作的crontab:

0 2 * * * java -jar file.jar arg1 arg2 arg3
4 15 * * * java -jar file3.jar arg1 arg2 args3
0 3 * * * java -jar file2.jar arg1 arg2 arg3

。在3点2运行的程序具有相同的功能。但是当运行3(file2.jar)时,非英语字符不会插入。

这是我插入DB的代码的一部分:

stmt = (Statement) con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE) ;
            stmt.executeUpdate("set character_set_results=utf8"); 
            stmt.executeUpdate("set character_set_filesystem=utf8");
   try
   {
       rs.moveToInsertRow();
       rs.updateString("f1", str1);
       rs.updateString("f2", str2);
       rs.updateFloat("f3", fl1));

       rs.insertRow();

   }
   catch(Exception ex)
   {
   }

1 个答案:

答案 0 :(得分:0)

我无法找到解决问题的方法所以我写了一个运行应用程序的调度程序,它工作正常!!!

但我仍然感到困惑,为什么crontab会出现这个问题,或者我做了什么,程序运行不正常!!!