mysqldump ne crée pas de tables et n'importe aucune donnée

11

J'essaie d'importer un mysqldump dans une nouvelle base de données. Quand je cours:

mysqldump -umydbuser -p --database testimport < database.dump

J'obtiens la sortie suivante:

Enter password:
-- MySQL dump 10.11
--
-- Host: localhost    Database: testimport
-- ------------------------------------------------------
-- Server version       5.0.75-0ubuntu10.3

/*!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 */;

--
-- Current Database: `testimport`
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `testimport` /*!40100 DEFAULT CHARACTER SET     latin1 */;

USE `testimport`;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2010-03-09 17:46:03

Cependant, quand je regarde la base de données testimport, il n'y a pas de tables ni de données. Même si j'exporte une base de données fonctionnelle par:

mysqldump -umydbuser -p --database workingdatabase > test.sql

puis importez:

mysqldump -umydbuser -p --database testimport < test.sql

J'obtiens la même sortie, mais rien n'est importé dans la testimportbase de données. Je ne vois aucune erreur dans la sortie et elle utilise la base de données appropriée. Si je file le fichier .sql exporté, je vois les instructions create pour toutes les tables et les insertions pour toutes les données. Pourquoi ces données ne sont-elles pas importées? Y a-t-il une journalisation supplémentaire que je peux voir?

George
la source

Réponses:

26

Vous souhaitez exécuter le vidage via le client mysql.

Exemple:

mysql -uroot -p testimport < database.dump

Warner
la source
2
Différents outils pour différents objectifs, Josh.
Warner
8

Parce que lorsque vous sauvegardez des données (sauvegarde), vous utilisez "mysqldump":

mysqldump -u user -p Database_name > SQL_dump_file.sql

Mais lors de la restauration des données dans la base de données, vous devez utiliser uniquement "mysql":

mysql -u user -p Database_name < SQL_dump_file.sql
TommyDo
la source
-2

J'ai eu le même problème, il suffit d'exporter de DDL (uniquement la structure) et d'exporter la base de données complète, puis d'importer d'abord le fichier DDL, puis d'importer le fichier complet en utilisant la même phrase

mysqldump -uroot -p 'database' < 'filename.sql'
kjim221
la source
1
Vous ne pouvez pas importer de données avec mysqldump, c'est un outil d'exportation uniquement. mysqlest pour l'importation.
Gerald Schneider