#mysql #database
#mysql #База данных
Вопрос:
Я тестировал базу данных в MySQL в течение нескольких месяцев, используя ручные удаления, обновления и другие запросы. Справедливо сказать, что БД подверглась злоупотреблениям.
Теперь я хочу загрузить ее на свой рабочий сервер, но я хочу начать с новой копии. Есть ли способ сделать это?
Я не хочу сохранять какие-либо данные. Я просто хочу, чтобы для начала была хорошая, чистая база данных, которой не злоупотребляли в течение нескольких месяцев тестирования.
Комментарии:
1. Запустите резервную копию dev без данных и загрузите в live, затем создайте резервные копии любых статических таблиц daya на dev и загрузите в live?
Ответ №1:
Если вы используете mysqldump, укажите параметр —no-data:
mysqldump --host=host --user=user --password=password --no-data db_name > structure.sql
Это создаст новую файловую структуру.sql, содержащую необходимые инструкции CREATE TABLE .
Если у вас есть какой-либо другой инструмент администрирования, который позволяет экспортировать, например, phpMyAdmin, у вас должна быть возможность оставить данные и экспортировать только структуру.
Комментарии:
1. Я использую Navicat. Я посмотрю, есть ли такая опция — что более чем вероятно.
Ответ №2:
Если вы не смогли найти эту опцию в своем программном обеспечении DB Manager, вы всегда можете использовать TRUNCATE TABLE <table_name>;
для каждой таблицы. Это очищает таблицу и возвращает счетчику AUTO_INCREMENT значение 0 (если вы его используете). Если вы используете внешние ключи, вы можете обернуть весь свой усеченный запрос следующим образом:
SET FOREIGN_KEY_CHECKS=0;
TRUNCATE TABLE <table_name1>;
TRUNCATE TABLE <table_name2>;
SET FOREIGN_KEY_CHECKS=1;
чтобы избежать внешних проверок.