MariaDB 中的视图定义不是使用 mysqldump 创建的

Dav*_*ama 0 mysql backup mariadb

我在 MariaDB 10.1.25 中有一个数据库,其中有许多表和 20 个视图。当我尝试使用 mysqldump 备份数据库时,它对于表工作正常,但在视图定义中,它无法像表那样创建创建语句。生成的代码是这样的:

--
-- Temporary table structure for view `qry_clientes`
--

DROP TABLE IF EXISTS `qry_clientes`;
/*!50001 DROP VIEW IF EXISTS `qry_clientes`*/;
SET @saved_cs_client     = @@character_set_client;
SET character_set_client = utf8;
/*!50001 CREATE TABLE `qry_clientes` (
  `Id` tinyint NOT NULL,
  `Cliente` tinyint NOT NULL,
  `Direccion` tinyint NOT NULL,
  `Ciudad` tinyint NOT NULL,
  `Fono` tinyint NOT NULL,
  `Fax` tinyint NOT NULL,
  `Email` tinyint NOT NULL,
  `Ruc` tinyint NOT NULL,
  `tipo` tinyint NOT NULL
) ENGINE=MyISAM */;
SET character_set_client = @saved_cs_client;
Run Code Online (Sandbox Code Playgroud)

其中没有视图定义。我拥有所有授予的特权

Ale*_*NIS 5

通常,在 mysqldump 备份脚本中,视图首先创建为表,然后在创建每个视图时将其删除到脚本的底部。

有时此过程中会出现错误,因为创建视图时有一个用户用作 DEFINER。该语句可能会失败,因为数据库中可能不存在该用户。

请验证视图删除/创建脚本是否存在于末尾,写入您收到的错误(如果收到)并使用 -v 选项运行导入以获取更多日志记录。