it-roy-ru.com

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

Я ищу синтаксис для сброса всех данных в моей базе данных MySQL. Я не хочу никакой табличной информации.

265
Lizard

mysqldump --no-create-info ...

Если вы используете триггеры, вам также необходимо включить --skip-triggers

И если вы используете опцию --databases ..., вам также необходимо включить --no-create-db

487
matei

Это должно работать:

# 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] нет пробела

132
Ish
 >> 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
20
Angelin Nadar

Если вам нужны запросы INSERT, используйте следующее:

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

9
Jonathan

Рекомендую использовать следующий фрагмент. Прекрасно работает даже с огромными таблицами (иначе вы бы открыли дамп в редакторе и удалили ненужные вещи, верно?;)

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

По крайней мере, mysql 5.x требуется, но кто запускает старые вещи в настоящее время .. :)

2
wuzer

При попытке экспортировать данные, используя принятый ответ, я получил ошибку:

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
0
Ben Waine

Просто выведите данные в в текстовом формате с разделителями .

0
Frank Heikens

Попробуйте сделать дамп в файл с разделителями.

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