mysql升级(5.0.45到5.1.42)错误

时间:2010-11-03 15:46:49

标签: mysql

当我们将5.0.45升级到5.1.42时,我遇到以下错误。我需要使用mysql_upgrade吗? 还是mysqlcheck?

引起: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)

3 个答案:

答案 0 :(得分:2)

在mysql 5.1中为程序添加了4个附加列。似乎你的某些升级跳过了这一步,现在你在导入数据时遇到错误。

MySQL upgrade应该可以帮助您解决这个问题。

答案 1 :(得分:0)

异常表明你应该使用mysql_upgrade。

答案 2 :(得分:0)

如果您正在ubuntu上的XAMPP设置上运行,请导航至:

/opt/lampp/bin

然后运行

./mysql_upgrade

它应该对所有现有数据库进行检查,最后可能会显示以下错误消息:

  

无法创建升级信息文件   MariaDB服务器中的'/ opt / lampp / var / mysql / mysql_upgrade_info'   datadir,errno:13

不用担心,您现在可以无错误地导入db.sql脚本。

如果要从同一位置访问MariaDB shell:

如果您尚未设置密码:

./mysql -u root

如果您设置了密码:

./mysql -u root