恢复MySQL数据库';s from.sql备份失败:mysql.proc表不';不存在

恢复MySQL数据库';s from.sql备份失败:mysql.proc表不';不存在,mysql,database-backups,Mysql,Database Backups,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 < b

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-u root-p--verbose
现在我所有的表都在mysql数据库中了。。。我猜是因为我在备份中使用了--add drop数据库选项。我不知道为什么,但幸运的是,尽管服务器没有任何用户表,但此时我仍然可以登录到服务器

编辑:我相信仍然能够登录类似于特权在刷新之前不会改变


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

我不确定上述错误的确切关系,但问题源于mysql数据库没有完全删除。它的数据目录中有一些文件不是表(.frm等)

见相关帖子:

在本例中,这些“文件”是隐藏的Windows.BackupManager目录,似乎存在于我的计算机上C:下的每个目录中。从需要删除的数据目录中删除它们是解决方案。

我得到了相同的“表'mysql.proc'不存在”错误,尽管我只是尝试恢复数据库。无论如何,对我有效的方法是在终端中运行以下命令,然后重试

mysql_upgrade

我猜还原会在错误发生后立即停止,并且不会删除负责身份验证的表。