тільки дані mysqldump


Відповіді:


552
mysqldump --no-create-info ...

Також ви можете використовувати:

  • --skip-triggers: якщо ви використовуєте тригери
  • --no-create-db: якщо ви використовуєте --databases ...опцію
  • --compact: якщо ви хочете позбутися зайвих коментарів

47
Ось повний cmd для пастерів копіюванняmysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where='id=12345678'
Ізмір Рамірес

2
Якщо ви отримаєте Access denied for user ... to database '...' when doing LOCK TABLES, використовуйте--single-transaction
Рольф

@YzmirRamirez спасибі, але FYI на Windows мені довелося використовувати подвійні лапки --where. Наприклад,--where="id=2"
Кіп

Це було для мене геніальним збереженням. Дякую.
Ken Ingram

149

Це має працювати:

# 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

ПРИМІТКА: між -p&[pass]


12
--no-create-dbє надлишковим при використанні--no-create-info
Джеймс Макмахон

4
Простір після -pвідмінно
спасибі

12
Як правило, краще просто використовувати -p, не вводячи пароль, щоб пароль не зберігався у вашій історії баш (вам буде запропоновано ввести пароль після запуску команди).
Dan

2
Окрім порад @ Dan, він також робить пароль видимим для кожного користувача, який може перелічити поточні процеси ( ps -ef)
TMG

1
Вихід із пароля після -pопції mysqldumpзапрошує пароль.
Мелле

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

ви знайдете пояснення нижче

--no-create-info, -t

Не пишіть заяви CREATE TABLE, які заново створюють кожну скинуту таблицю. Примітка. Цей параметр не виключає заяви, що створюють групи файлів журналів або простори таблиць з виводу mysqldump; однак ви можете використовувати для цього параметр --no-tablepaces.

--но-дані, -д

Не пишіть жодної інформації про рядки таблиці (тобто не скидайте вміст таблиці). Це корисно, якщо ви хочете скинути лише таблицю CREATE TABLE для таблиці (наприклад, створити порожню копію таблиці, завантаживши файл дампа).

# 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
чи є причина використання два рази варіантів '-t' та '-d'?
erwan

19

Якщо ви просто хочете INSERT запити, використовуйте наступне:

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


дякую за те, --compactщо позбавляється від зайвих заяв про коментарі
chiliNUT

2

Я б запропонував використовувати наступний фрагмент. Добре працює навіть з величезними таблицями (інакше ви відкриєте дамп у редакторі та знімете непотрібні речі, правда?;)

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

Потрібно принаймні mysql 5.x , але хто зараз працює зі старими речами .. :)


Нещодавно я зіткнувся з ситуацією, коли довелося підключатися до системи, яка використовувала 4.x у виробництві. Вони мали пробіли в назвах таблиць і стовпців, і, на мою думку, вони робили в основному все неправильно.
Елквіс


0

Спробуйте скинути файл з розмежуваним файлом.

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

0

При спробі експорту даних за допомогою прийнятої відповіді я отримав помилку:

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'

Як зазначено вище:

mysqldump --no-create-info

Експортує дані, але також експортує операції створення тригера. Якщо мені подобається, ваша структура бази даних виводу (яка також включає тригери) з однією командою, а потім, використовуючи вищевказану команду для отримання даних, ви також повинні використовувати '--skip-тригери'.

Тож якщо ви хочете ПРОСТО даних:

mysqldump --no-create-info --skip-triggers
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.