Как импортировать дамп 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 

Я бы предложил -- add-drop-table вариант.