Как импортировать дамп MySQL из командной строки с перезаписью
Я много гуглил, и я ничего не могу найти об этом !
[root@someday backups]# mysql -u username_1 -p db_1 < tables_to_import/tables.sql
ERROR 1050 (42S01) at line 19: Table 'ps_customer' already exists
С mysql -f
то же самое. я хочу просто импортировать это .sql и перепишите эти таблицы, может кто-нибудь мне помочь ?
p.s. я знаю, что при экспорте БД вы можете выбрать опцию "DROP TABLE", но если у меня есть резервная копия, без этого объявления ? как я могу заставить ? Спасибо
3 ответов
вы пытаетесь перезаписать всю базу данных? Если это так, вы можете вручную удалить все таблицы, а затем запустить сценарий импорта. Это легко сделать в phpmyadmin. Если вы используете CLI, самый быстрый способ - использовать DROP DATABASE databasename
а то create database
, хотя я думаю, что вам придется повторно предоставить привилегии для любых пользователей, не являющихся root.
другой вариант-открыть файл дампа и добавить DROP TABLE tablename
перед каждой из команд CREATE TABLE. Вы, вероятно, могли бы сделать это легко с умным выражение.
когда вы делаете mysqldump add --add-drop-table (как упоминалось twihoX). Затем сделайте свой импорт, как обычно. Что-то вроде:
mysqldump --add-drop-table -u user -p > dumpfile.sql
mysql -u user -p < dumpfile.sql