скопировать структуру базы данных без данных в 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
без данные.
от 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