mysqldump không tạo bảng hoặc nhập bất kỳ dữ liệu nào


11

Tôi đang cố gắng nhập một mysqldump vào cơ sở dữ liệu mới. Khi tôi chạy:

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

Tôi nhận được đầu ra sau đây:

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

Tuy nhiên, khi tôi nhìn vào cơ sở dữ liệu testimport, không có bảng và không có dữ liệu. Ngay cả khi tôi xuất cơ sở dữ liệu hoạt động bằng cách:

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

và sau đó nhập:

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

Tôi nhận được cùng một đầu ra, nhưng không có gì được nhập vào testimportcơ sở dữ liệu. Tôi không thấy bất kỳ lỗi nào trong đầu ra và nó đang sử dụng cơ sở dữ liệu thích hợp. Nếu tôi theo đuôi tệp .sql đã xuất, tôi sẽ thấy các câu lệnh tạo cho tất cả các bảng và phần chèn cho tất cả dữ liệu. Tại sao dữ liệu này không được nhập? Có bất kỳ đăng nhập bổ sung tôi có thể nhìn thấy?

Câu trả lời:


26

Bạn muốn chạy kết xuất thông qua máy khách mysql.

Thí dụ:

mysql -uroot -p testimport < database.dump


2
Các công cụ khác nhau cho các mục đích khác nhau, Josh.
Warner

8

Bởi vì khi bạn kết xuất dữ liệu (Sao lưu), bạn đã sử dụng "mysqldump":

mysqldump -u user -p Database_name > SQL_dump_file.sql

Nhưng khi khôi phục dữ liệu vào cơ sở dữ liệu, bạn chỉ cần sử dụng "mysql":

mysql -u user -p Database_name < SQL_dump_file.sql

-2

Tôi gặp vấn đề tương tự, chỉ cần xuất de DDL (chỉ cấu trúc) và xuất cơ sở dữ liệu đầy đủ, sau đó nhập tệp DDL trước, tiếp theo nhập tệp đầy đủ bằng cùng một câu

mysqldump -uroot -p 'database' < 'filename.sql'

1
Bạn không thể nhập dữ liệu với mysqldump, đó là một công cụ chỉ xuất. mysqldành cho nhập khẩu.
Gerald Schneider
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.