[2012-11-10 23:58:09] ERROR  [cn.eden.world.World] - org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.io.EOFExceptionSTACKTRACE:java.io.EOFException
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3176)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1153)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:794)
at sun.reflect.GeneratedMethodAccessor211.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:45)
at $Proxy30.execute(Unknown Source)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:22)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:51)
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:29)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:88)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:43)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:121)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:62)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:38)
at $Proxy35.updateByPrimaryKey(Unknown Source)
at cn.eden.world.World.insertRoleBag(World.java:3125)
at cn.eden.world.World.handleAwardArticle(World.java:4624)
at cn.eden.gameserver.clientpackets.FightMonster.runImpl(FightMonster.java:112)
at cn.eden.gameserver.clientpackets.ClientBasePacket.run(ClientBasePacket.java:27)
at cn.eden.gameserver.GameHandler.onData(GameHandler.java:53)
at org.xsocket.stream.NonBlockingConnection$IOEventHandler.onDataEvent(NonBlockingConnection.java:600)
at org.xsocket.stream.IoSocketHandler.onDataEvent(IoSocketHandler.java:292)
at org.xsocket.stream.IoSocketDispatcher$DispatcherEventHandler$1.run(IoSocketDispatcher.java:63)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
** END NESTED EXCEPTION **Last packet sent to the server was 0 ms ago.
### The error may involve cn.eden.dao.RoleBagMapper.updateByPrimaryKey-Inline
### The error occurred while setting parameters
### Cause: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.io.EOFExceptionSTACKTRACE:java.io.EOFException
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3176)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1153)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:794)
at sun.reflect.GeneratedMethodAccessor211.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:45)
at $Proxy30.execute(Unknown Source)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:22)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:51)
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:29)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:88)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:43)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:121)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:62)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:38)
at $Proxy35.updateByPrimaryKey(Unknown Source)
at cn.eden.world.World.insertRoleBag(World.java:3125)
at cn.eden.world.World.handleAwardArticle(World.java:4624)
at cn.eden.gameserver.clientpackets.FightMonster.runImpl(FightMonster.java:112)
at cn.eden.gameserver.clientpackets.ClientBasePacket.run(ClientBasePacket.java:27)
at cn.eden.gameserver.GameHandler.onData(GameHandler.java:53)
at org.xsocket.stream.NonBlockingConnection$IOEventHandler.onDataEvent(NonBlockingConnection.java:600)
at org.xsocket.stream.IoSocketHandler.onDataEvent(IoSocketHandler.java:292)
at org.xsocket.stream.IoSocketDispatcher$DispatcherEventHandler$1.run(IoSocketDispatcher.java:63)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
** END NESTED EXCEPTION **

解决方案 »

  1.   

    你这是java 报错,mysql 错误看mysql的 .err日志
      

  2.   

    报错应该是11月10日的。这个svctag-bdtz83x.err文件里面好像没有121109 14:03:44 [Warning] './game/bluetoothlog' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
    121109 14:03:44 [Warning] './game/gamelist' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
    121109 14:03:44 [Warning] './game/log' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
    121109 14:03:44 [Warning] './game/logfree' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
    121109 14:03:44 [Warning] './game/logfree_wy' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
    121109 14:03:44 [Warning] './game/phntype' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
    121109 14:03:44 [Warning] './game/text' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
    121109 14:03:44 [Warning] './game/userpass' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
    121109 14:03:44 [Warning] './game/wblog' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
    121109 14:03:44 [Warning] './game/wbqnumber' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
    121111  7:46:30  InnoDB: Database was not shut down normally!
    InnoDB: Starting crash recovery.
    InnoDB: Reading tablespace information from the .ibd files...
    InnoDB: Restoring possible half-written data pages from the doublewrite
    InnoDB: buffer...
    121111  7:46:31  InnoDB: Starting log scan based on checkpoint at
    InnoDB: log sequence number 0 3783650342.
    InnoDB: Doing recovery: scanned up to log sequence number 0 3783650342
    121111  7:46:31  InnoDB: Started; log sequence number 0 3783650342
    121111  7:46:31 [Note] E:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: ready for connections.
    Version: '5.0.26-community-nt'  socket: ''  port: 3306  MySQL Community Edition (GPL)
      

  3.   

    show variables like 'char%'; 
    从提示上看,是字符集的问题
      

  4.   

    这种错,大部分原因是因为jdbc驱动包太过陈旧造成的。楼主更新一下JDBC驱动至5.0或以上版本试试。
      

  5.   

    还是jdbc驱动版本问题造成的。