Bonsoir à tous,
J'utilise mysqldump pour générer une sauvegarde automatique d'une base contenant des tables InnoDB, ce qui fonctionne très bien.
mysqldump --user=user --password=pwd --databases test > /home/backup/test.sql
Je restaure les données avec
mysqldump --user=user --password=pwd --databases test < /home/backup/test.sql
Cependant, en ayant copié le fichier test.sql pour le restaurer sur une autre machine, quand je veux restaurer, mysqldump me dit que la base de donnée n'existe pas (compréhensible, elle n'existe vraiment pas), et du coup, il ne fait pas la restauration.
Quelle syntaxe de commande utiliser en sauvegarde et en restauration pour qu'il fasse tout (création de la base, et des tables, si elles n'existent pas ... avant l'insertion des données) ?
Pourtant, en ouvrant le fichier Mysql, l'entête contient ca :
-- MySQL dump 10.11
--
-- Host: localhost Database: test
-- ------------------------------------------------------
-- Server version 5.0.44-log
/*!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 latin1 */;
/*!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 */;
--
-- Current Database: `test`
--
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `test`;
--
-- Table structure for table `table1`
--
DROP TABLE IF EXISTS `table1`;
CREATE TABLE `table1` ...
-----------------------------------------------------------
A première vue, y a bien les créations de bases et de tables .. c'est ma syntaxe pour la restauration qui cloche ?
J'utilise mysqldump pour générer une sauvegarde automatique d'une base contenant des tables InnoDB, ce qui fonctionne très bien.
mysqldump --user=user --password=pwd --databases test > /home/backup/test.sql
Je restaure les données avec
mysqldump --user=user --password=pwd --databases test < /home/backup/test.sql
Cependant, en ayant copié le fichier test.sql pour le restaurer sur une autre machine, quand je veux restaurer, mysqldump me dit que la base de donnée n'existe pas (compréhensible, elle n'existe vraiment pas), et du coup, il ne fait pas la restauration.
Quelle syntaxe de commande utiliser en sauvegarde et en restauration pour qu'il fasse tout (création de la base, et des tables, si elles n'existent pas ... avant l'insertion des données) ?
Pourtant, en ouvrant le fichier Mysql, l'entête contient ca :
-- MySQL dump 10.11
--
-- Host: localhost Database: test
-- ------------------------------------------------------
-- Server version 5.0.44-log
/*!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 latin1 */;
/*!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 */;
--
-- Current Database: `test`
--
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `test`;
--
-- Table structure for table `table1`
--
DROP TABLE IF EXISTS `table1`;
CREATE TABLE `table1` ...
-----------------------------------------------------------
A première vue, y a bien les créations de bases et de tables .. c'est ma syntaxe pour la restauration qui cloche ?