только данные mysqldump


Ответы:


553
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
Rolf

@YzmirRamirez спасибо, но, к вашему сведению, в Windows мне пришлось использовать двойные кавычки --where. Например,--where="id=2"
Kip

Это был блестящий вкладчик для меня. Спасибо.
Кен Ингрэм

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 без указания пароля, чтобы пароль не сохранялся в вашей истории bash (вам будет предложено ввести пароль после выполнения команды).
Дан

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

1
Оставив пароль после того, как -pопция mysqldumpпредложит ввести пароль.
Мелле

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

Вы найдете ниже объяснение

--no-create-info, -t

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

--no-data, -d

Не записывайте какую-либо информацию о строках таблицы (то есть не создавайте дамп содержимого таблицы). Это полезно, если вы хотите вывести только таблицу 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'?
Эрвана

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-triggers'.

Так что если вы хотите просто данные:

mysqldump --no-create-info --skip-triggers
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.