2010-11-03 105 views
2

當我們將5.0.45升級到5.1.42時,出現以下錯誤。我需要使用mysql_upgrade 還是mysqlcheck?mysql升級(5.0.45至5.1.42)錯誤

原因:java.sql.SQLException:mysql.proc的列數錯誤。預計20,找到16.創建與MySQL 50045,現在運行50142.請使用mysql_upgrade修復此錯誤。

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447) 
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951) 
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101) 
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2554) 
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1761) 
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2046) 
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1964) 
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1949) 
    at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102) 
    at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:792) 
    at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:1) 
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:586) 

回答

1

在mysql 5.1中爲程序添加了4個額外的列。似乎你的升級跳過了這一步,現在你在導入數據時出錯。

MySQL upgrade應該可以幫助你解決這個問題。

+0

讓我試試看,並且會回覆給您... – user476554 2010-11-03 16:36:17

+0

如果您在執行'mysql_upgrade'之後仍然存在相同的問題,只需使用'--force'選項再次執行。我解決了這個問題。 – 2011-06-14 23:17:49

0

該異常表示您應該使用mysql_upgrade。