数据库
首页 > 数据库> > 从.sql备份恢复MySQL数据库失败:mysql.proc表不存在

从.sql备份恢复MySQL数据库失败:mysql.proc表不存在

作者:互联网

Windows Server 2008 R2
MySQL 5.5(msi安装)

我做了一个备份:

mysql -uuser -p --single-transaction --add-drop-database --databases mysql db1 db2 db3 --result-file="C:\ProgramData\mysql\mysql server 5.5\data\backup.sql"

但它没有成功恢复:

mysql -u root -p --verbose < bakcup.sql
Enter password:
--------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */
--------------
--------------
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */
--------------
--------------
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */
--------------
--------------
/*!40101 SET NAMES utf8 */
--------------
--------------
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */
--------------
--------------
/*!40103 SET TIME_ZONE='+00:00' */
--------------
--------------
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */
--------------
--------------
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */
--------------
--------------
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */
--------------
--------------
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */
--------------
--------------
/*!40000 DROP DATABASE IF EXISTS `mysql`*/
--------------
ERROR 1146 (42S02) at line 22: Table 'mysql.proc' doesn't exist

现在我的所有表都在mysql数据库中消失了…我猜是因为我在备份中使用了–add-drop-database选项.我不知道为什么,但幸运的是,尽管它没有任何用户表,我仍然可以登录到服务器.

编辑:我相信能够仍然登录类似于权限不会改变,直到他们被刷新.

我不确定为什么“’mysql.proc’不存在”是一个问题,因为它应该在恢复之前被删除.

解决方法:

我已经得到了相同的“表’mysql.proc’不存在”错误,虽然我只是想恢复数据库.无论如何,对我有用的是在终端中运行以下命令,然后再次尝试

mysql_upgrade

标签:database-backups,mysql
来源: https://codeday.me/bug/20190830/1769937.html