【问题标题】:mysql upgrade (5.0.45 to 5.1.42) errormysql升级(5.0.45到5.1.42)错误
【发布时间】:2011-05-04 13:59:39
【问题描述】:

当我们将 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)

【问题讨论】:

    标签: mysql


    【解决方案1】:

    异常表明您应该使用 mysql_upgrade。

    【讨论】:

      【解决方案2】:

      在 mysql 5.1 中为过程添加了 4 个附加列。似乎您的升级以某种方式跳过了该步骤,现在您在导入数据时遇到错误。

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

      【讨论】:

      • 如果您在执行mysql_upgrade 后仍然遇到同样的问题,请使用--force 选项再次执行此操作。我解决了这个问题。
      【解决方案3】:

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

      /opt/lampp/bin
      

      然后运行

      ./mysql_upgrade
      

      它应该检查你所有现有的数据库,最后它可能会给你这个错误消息:

      无法创建升级信息文件 MariaDB 服务器中的“/opt/lampp/var/mysql/mysql_upgrade_info” 数据目录,错误号:13

      不用担心,您现在可以正确导入 db.sql 脚本了。

      如果您想从同一位置访问您的 MariaDB shell:

      如果您还没有设置密码:

      ./mysql -u root
      

      如果您设置了密码:

      ./mysql -u root -p
      

      【讨论】:

      • 这实际上回答了我的问题。
      • 对于带有 Xampp MySQL 路径的 mac os 是 /Applications/XAMPP/bin
      猜你喜欢
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      • 2011-08-01
      • 2018-04-05
      • 2018-12-30
      • 1970-01-01
      相关资源
      最近更新 更多