chỉ dữ liệu mysqldump


Câu trả lời:


553
mysqldump --no-create-info ...

Ngoài ra, bạn có thể sử dụng:

  • --skip-triggers: nếu bạn đang sử dụng kích hoạt
  • --no-create-db: nếu bạn đang sử dụng --databases ...tùy chọn
  • --compact: nếu bạn muốn thoát khỏi những bình luận thêm

47
Dưới đây là cmd đầy đủ cho các mục sao chépmysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where='id=12345678'
Yzmir Ramirez

2
Nếu bạn nhận được Access denied for user ... to database '...' when doing LOCK TABLES, hãy sử dụng--single-transaction
Rolf

@YzmirRamirez cảm ơn nhưng FYI trên windows tôi đã phải sử dụng dấu ngoặc kép cho --where. Ví dụ:--where="id=2"
Kip

Đây là một tiết kiệm tuyệt vời cho tôi. Cảm ơn.
Ken Ingram

149

Điều này sẽ làm việc:

# To export to file (data only)
mysqldump -u [user] -p[pass] --no-create-info mydb > mydb.sql

# To export to file (structure only)
mysqldump -u [user] -p[pass] --no-data mydb > mydb.sql

# To import to database
mysql -u [user] -p[pass] mydb < mydb.sql

LƯU Ý: không có khoảng cách giữa -p&[pass]


12
--no-create-dblà dư thừa khi sử dụng--no-create-info
James McMahon

4
Một không gian sau -plà tốt
Cảm ơn bạn

12
Nói chung, tốt hơn là chỉ sử dụng -p mà không cung cấp mật khẩu để mật khẩu không được lưu trong lịch sử bash của bạn (bạn sẽ được nhắc nhập mật khẩu sau khi bạn chạy lệnh).
Dan

2
Ngoài lời khuyên của @ Dan, nó cũng giúp hiển thị mật khẩu cho bất kỳ người dùng nào có thể liệt kê các quy trình hiện tại ( ps -ef)
TMG

1
Để lại mật khẩu sau khi -ptùy chọn sẽ mysqldumpnhắc nhở mật khẩu.
Melle

22
 >> man -k  mysqldump [enter in the terminal]

bạn sẽ tìm thấy lời giải thích dưới đây

--no-tạo-thông tin, -t

Không viết các câu lệnh CREATE TABLE tạo lại mỗi bảng được kết xuất. Lưu ý Tùy chọn này không loại trừ các câu lệnh tạo nhóm tệp nhật ký hoặc không gian bảng từ đầu ra mysqldump; tuy nhiên, bạn có thể sử dụng tùy chọn --no-framespaces cho mục đích này.

- không có dữ liệu, -d

Không viết bất kỳ thông tin hàng của bảng (nghĩa là không đổ nội dung bảng). Điều này hữu ích nếu bạn chỉ muốn kết xuất câu lệnh CREATE TABLE cho bảng (ví dụ: để tạo một bản sao trống của bảng bằng cách tải tệp kết xuất).

# To export to file (data only)
mysqldump -t -u [user] -p[pass] -t mydb > mydb_data.sql

# To export to file (structure only)
mysqldump -d -u [user] -p[pass] -d mydb > mydb_structure.sql

3
Có lý do để sử dụng hai lần tùy chọn '-t' và '-d' không?
erwan

19

Nếu bạn chỉ muốn các truy vấn INSERT, hãy sử dụng như sau:

mysqldump --skip-triggers --compact --no-create-info


cảm ơn bạn --compactđã thoát khỏi các tuyên bố bình luận thêm
chiliNUT

2

Sẽ đề nghị sử dụng đoạn mã sau. Hoạt động tốt ngay cả với các bảng lớn (nếu không, bạn sẽ mở kết xuất trong trình chỉnh sửa và loại bỏ những thứ không cần thiết, phải không?)

mysqldump --no-create-info --skip-triggers --extended-insert --lock-tables --quick DB TABLE > dump.sql

Ít nhất là yêu cầu mysql 5.x , nhưng ngày nay ai chạy thứ cũ .. :)


Gần đây tôi gặp phải một tình huống, nơi phải kết nối với một hệ thống đang sử dụng 4.x trong sản xuất. Họ có khoảng trắng trong tên bảng và cột, và theo tôi, về cơ bản họ đã làm mọi thứ sai.
Elkvis


0

Cố gắng đổ vào một tập tin phân định.

mysqldump -u [username] -p -t -T/path/to/directory [database] --fields-enclosed-by=\" --fields-terminated-by=,

0

Khi cố gắng xuất dữ liệu bằng câu trả lời được chấp nhận, tôi đã gặp lỗi:

ERROR 1235 (42000) at line 3367: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'

Như đã đề cập ở trên:

mysqldump --no-create-info

Sẽ xuất dữ liệu nhưng nó cũng sẽ xuất các câu lệnh kích hoạt tạo. Nếu giống như tôi, cấu trúc cơ sở dữ liệu đầu ra của bạn (cũng bao gồm các trình kích hoạt) với một lệnh và sau đó sử dụng lệnh trên để nhận dữ liệu bạn cũng nên sử dụng '--skip-trigger'.

Vì vậy, nếu bạn muốn CHỈ dữ liệu:

mysqldump --no-create-info --skip-triggers
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.