скопировать структуру базы данных без данных в MySQL (с пустыми таблицами)

есть ли способ скопировать структуру базы данных без данных в MySQL, поэтому новая база данных будет такой же, как она скопирована, но с пустыми таблицами.

после получения некоторых предложений я попробовал команду, но я получаю синтаксическую ошибку, мой username = root и password = nothing. Я думаю, что по умолчанию. Я пытаюсь следовать команде,

mysqldump -u root -p -d xyz_db | mysql -u root -p -Dnew_db

что мне не хватает или неуместно в команде?

5 ответов


mysqldump -u user -ppass -d olddb | mysql -u user -ppass -D newdb

новая база данных должна уже существовать. The -d флаг в команде mysqldump предотвращает копирование данных.

нет пространства между флагом -p и пароль.


вы можете сделать резервную копию с помощью mysqldump и в MySQL С помощью командной строки.

для резервного копирования базы данных

$ mysqldump -u root-pPassword -P3309 --routines --no-data testdb > "d:\dbwithnodata.sql"

для восстановления базы данных

$ mysql -u root-pPassword -P3309 newdb < "d:\dbwithnodata.sql"

вы можете создать резервную копию структуры базы данных MYSQL с помощью

mysqldump -u username –p  -d database_name > backup.sql

(вы не должны вводить пароль в командной строке, поскольку это приводит к рискам безопасности.MYSQL будет запрашивать пароль по умолчанию.) И вы можете создать таблицы в базе данных с

mysql -u username -p new_database < backup.sql

теперь вы можете использовать pipe для вывода первой команды в качестве вывода для второй, и вам больше не понадобится backup.sql

mysqldump -u username –p  -d database_name|mysql -u username -p new_database

все таблицы будут созданы в new_database без данные.


попробуй это:

$ mysqldump --no-data -h localhost -u root -p database_name > imported_db_name.sql

от electrictboolbox.com/mysqldump-schema-only:

сброс структуру базы данных для всех таблиц без данных Добавьте флаг-d, чтобы указать, что данные не должны включаться в выходные данные, например, где "mydatabase" - это имя базы данных для дампа, а "someuser" - имя Входа, используемое для подключения к базе данных. Следующая команда будет сбрасывать структуру таблицы для всех таблиц в указанной базе данных MySQL:

$ mysqldump -d -u someuser -p mydatabase

флаг-d говорит не включать данные в дамп. В качестве альтернативы вы можете использовать --no-data, если вам легче запомнить:

$ mysqldump --no-data -u someuser -p mydatabase

флаг-u указывает имя пользователя и флаг-p, который будет указан пароль. После нажатия кнопки вам будет предложено ввести пароль.

кроме того, пароль может быть указан в командной строке, но между флагом-p и паролем не должно быть места. Например, если пароль был "яблоки", сделайте следующее:

$ mysqldump --no-data -u someuser -papples mydatabase
$ mysqldump -d -u someuser -p mydatabase > mydatabase.sql # This will output to a sql file