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