Press "Enter" to skip to content

Mysql Error:The user specified as a definer (‘mysql.infoschema’@’localhost’) does not exist’ when trying to dump tablespaces

我的MYSQL 使用Docker进行部署的,当我进行版本升级(MySQL 5.7 to MySQL 8.0)之后,尝试进行连接的时候就会报这个错误。

解决办法:
来源https://dev.mysql.com/doc/refman/8.0/en/upgrading-strategies.html)

(来源 update : https://dev.mysql.com/doc/refman/8.0/en/docker-mysql-getting-started.html#docker-upgrading)

docker exec -it mysql bash
mysql -u root -p
mysql> SET GLOBAL innodb_fast_shutdown = 1;
mysql_upgrade -u root -p

5 Comments

  1. 詹婷
    詹婷 2020年10月12日

    你好 我用了您的方法 在最后输入mysql_upgrade -u root -p后出现以下语句

    D:\>cd D:\Program Files\mysql-8.0.21-winx64\mysql-8.0.21-winx64\bin

    D:\Program Files\mysql-8.0.21-winx64\mysql-8.0.21-winx64\bin>mysql -u root -p
    Enter password: ****
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 47
    Server version: 8.0.21 MySQL Community Server – GPL

    Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.

    Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

    mysql> SET GLOBAL innodb_fast_shutdown = 1;
    Query OK, 0 rows affected (0.00 sec)

    mysql> exit
    Bye

    D:\Program Files\mysql-8.0.21-winx64\mysql-8.0.21-winx64\bin>mysql_upgrade -u root -p
    Enter password: ****
    The mysql_upgrade client is now deprecated. The actions executed by the upgrade client are now done by the server.
    To upgrade, please start the new MySQL binary with the older data directory. Repairing user tables is done automatically. Restart is not required after upgrade.
    The upgrade process automatically starts on running a new MySQL binary with an older data directory. To avoid accidental upgrades, please use the –upgrade=NONE option with the MySQL binary. The option –upgrade=FORCE is also provided to run the server upgrade sequence on demand.
    It may be possible that the server upgrade fails due to a number of reasons. In that case, the upgrade sequence will run again during the next MySQL server start. If the server upgrade fails repeatedly, the server can be started with the –upgrade=MINIMAL option to start the server without executing the upgrade sequence, thus allowing users to manually rectify the problem.

    • admin
      admin 2020年10月20日

      我看你的提示,大概意思是 这个升级指令已经过时了,现在服务器会自动升级你的数据文件,并且不用重启。这个升级会自动执行,可能会升级失败,如果升级失败,需要手动介入了。你的问题解决了吗?

  2. 赖萍萍
    赖萍萍 2020年12月23日

    你好,我用了以后出现这个错误
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘mysql_upgrade -u root -p123456’ at line 1

    • admin
      admin 2020年12月24日

      这个不是 mysql语句, “mysql_upgrade -u root -p” 这个是 mysql bin下面的一个可执行程序, 你需要退出mysql控制台 再执行这个。

  3. GAGARIN7925
    GAGARIN7925 2021年1月3日

    Thank you!!1

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注