2017-07-30 10 views
0

J'ai un db dans MariaDB 10.1.25 et, j'ai beaucoup de tables et 20 vues. Lorsque je tente de sauvegarder mon db en utilisant mysqldump, il fonctionne très bien pour les tables, mais dans les définitions de vue, il ne parvient pas à créer une instruction create comme il le fait avec des tables. Le code généré est le suivant:Voir les définitions dans MariaDB sont pas créer avec 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; 

et cela, il n'y a pas de définitions de vue. J'ai tous les privilèges mis en évidence

Répondre

2

Généralement, dans le script de sauvegarde mysqldump, les vues sont d'abord créées en tant que tables, puis sont supprimées en bas du script lors de la création de chaque vue.

Parfois, il y a une erreur dans ce processus parce que quand une vue est créée il y a un utilisateur utilisé comme DEFINER. Cette instruction peut échouer car cet utilisateur peut ne pas exister dans la base de données.

Veuillez vérifier que le script drop/create de vue existe à la fin, écrire l'erreur que vous obtenez (si vous obtenez) et lancer l'importation en utilisant l'option -v pour plus de journalisation.

+0

oui, il est correct que je crée de fichier de vidage et compriment puis charger comme fichier d'importation via phpmysadmin dans l'autre ordinateur et lancez avec succès –

+0

Je suis heureux d'avoir pu aider mon ami :) –