zoukankan      html  css  js  c++  java
  • ERROR 3009 (HY000): Column count of mysql.user is wrong…..

    在测试备份还原时,使用XtraBackup还原数据库后,创建一个测试账号时遇到了下面错误:

     

     

    mysql> grant all on house.* to test@'192.168.%' identified by 'test1249';

    ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 43. Created with MySQL 50620, now running 50721. Please use mysql_upgrade to fix this error.

    mysql>

     

     

    因为备份的数据库版本为MySQL 5.6.20,目标数据库的MySQL版本为5.7.21,因为两个数据库版本不一致,在还原过后,忘记升级数据库(还原后没有使用mysql_upgrade升级数据结构)。其实从错误信息也能看出一二,需要执行mysql_upgrade命令会检查所有数据库中的所有表与当前版本的MySQL服务器是否不兼容。 mysql_upgrade还会升级系统表,以便你可以使用一些新特性或功能。

     

     

    #  mysql_upgrade -u root -p
    Enter password: 
    Checking if update is needed.
    Checking server version.
    Running queries to upgrade MySQL server.
    Checking system database.
    mysql.columns_priv                                 OK
    mysql.db                                           OK
    mysql.db_database_info                             OK
    mysql.db_instance_info                             OK
    mysql.db_server_info                               OK
    mysql.engine_cost                                  OK
    ......................................................
    ......................................................
    Upgrade process completed successfully.
    Checking if update is needed.

     

     

    关于mysql_upgrade的官方介绍如下,具体细节参考4.4.7 mysql_upgrade — Check and Upgrade MySQL Tables

     

     

     

    mysql_upgrade examines all tables in all databases for incompatibilities with the current version of MySQL Server. mysql_upgrade also upgrades the system tables so that you can take advantage of new privileges or capabilities that might have been added.

    If mysql_upgrade finds that a table has a possible incompatibility, it performs a table check and, if problems are found, attempts a table repair. If the table cannot be repaired, see Section 2.11.3, “Rebuilding or Repairing Tables or Indexes” for manual table repair strategies.

    You should execute mysql_upgrade each time you upgrade MySQL.

     

     

     

    参考资料:

     

    https://dev.mysql.com/doc/refman/5.7/en/mysql-upgrade.html

  • 相关阅读:
    OpenSSL 安装 (Linux系统)
    JVM 指令集
    Github清除历史提交,保留最新提交
    php7+apache2.4 安装(window)
    mysql 函数模拟序列
    SpringBoot配置成Liunx服务
    Liunx下NFS服务器的搭建与配置
    Laravel 出现"RuntimeException inEncrypter.php line 43: The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths."问题的解决办法
    win7安装laravel
    win7安装composer
  • 原文地址:https://www.cnblogs.com/kerrycode/p/9198225.html
Copyright © 2011-2022 走看看