Как импортировать одну таблицу в базу данных mysql с помощью командной строки


145

Я успешно импортировал базу данных с помощью командной строки, но теперь моя проблема заключается в том, как импортировать одну таблицу с ее данными в существующую базу данных с помощью командной строки.


3
экспорт только одной таблицы и импорт
Шакти Сингх

3
См. Также этот повторяющийся вопрос: stackoverflow.com/q/1013852/385571 с его более релевантными ответами
MattBianco

Ответы:


324

Linux:

В командной строке

 mysql -u username -p  databasename  < path/example.sql

поместите свою таблицу в example.sql

Импорт / экспорт для одной таблицы:

  1. Схема экспорта таблицы

    mysqldump -u username -p databasename tableName > path/example.sql
    

    Это создаст файл с именем example.sqlпо указанному пути и напишет команду create tablesql для создания таблицы tableName.

  2. Импортировать данные в таблицу

    mysql -u username -p databasename < path/example.sql
    

    Для этой команды требуется файл sql, содержащий данные в виде insertоператоров для таблицы tableName. Все insertоператоры будут выполнены, и данные будут загружены.


2
-u был пропущен;) mysqldump -u username -p databasename tableName> path / example.sql
Kazmin

2
Для импорта не нужно использовать дамп mysql. mysql -u username -p databasename tableName <path / example.sql Он должен делать вашу работу
Прабхакар Ундурти

8
tableNameИмя не требуется для всех версий MySQL и выдает ошибки, поэтому вам может понадобиться , чтобы пропустить его!
mchar

1
Я получал синтаксическую ошибку, пока не понял, что выполняю ее в bash, а не в mysql.
Christia

2
Это сработает, только если у меня есть доступ к базе данных, из которой я могу экспортировать определенную таблицу. Однако, если у меня есть полный дамп базы данных, и я хочу выбрать таблицу (таблицы) для импорта, это решение не сработает. Связанный пост Могу ли я восстановить одну таблицу из полного файла mysql mysqldump? решает эту проблему.
codeforester

34

Экспорт:

mysqldump --user=root databasename > whole.database.sql
mysqldump --user=root databasename onlySingleTableName > single.table.sql

Импорт :

Вся база данных :

mysql --user=root wholedatabase < whole.database.sql

Единый стол :

mysql --user=root databasename < single.table.sql

23

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

Но если вам нужно использовать существующий файл SQL и использовать из него определенную таблицу, тогда этот сценарий perl в блоге TimeSheet позволит вам извлечь таблицу в отдельный файл SQL, а затем импортировать его.

Исходная ссылка мертва, поэтому хорошо, что кто-то разместил ее вместо автора, Джареда Чейни, на GitHub в этой ссылке .


Кроме того, связанный пост Могу ли я восстановить одну таблицу из полного файла mysql mysqldump? решает эту проблему.
codeforester

1
Ссылка не работает и ее нет на archive.org. Не могли бы вы предоставить обновленную ссылку?
Пабло Бьянки

12

Импорт единой таблицы

Чтобы импортировать одну таблицу в существующую базу данных, вы должны использовать следующую команду:

mysql -u username -p -D database_name < tableName.sql

Примечание. Лучше использовать полный путь к sql-файлу tableName.sql.


5

Командная строка

Импорт / экспорт для одной таблицы:

Экспорт схемы таблицы

 -> mysqldump -u your_user_name -p your_database_name table_name > test.sql

Это создаст файл с именем test.sql и создаст команду table sql для создания таблицы table_name.

Импорт данных в таблицу

 -> mysql -u your_user_name -p database_name table_name < test.sql

Убедитесь, что ваш файл test.sql находится в том же каталоге, если нет, перейдите по пути и запустите команду.


3
Вам не нужно указывать имя таблицы в командной строке, так как в экспортированном файле SQL есть соответствующий вызов для создания таблицы. Все, что вам нужно, это mysql -u your_user_name -p database_name < test.sql.
Майкл Де Сильва,

1
Вот пример из экспортированной таблицы: `22 DROP TABLE IF EXISTS account_product_prices; 23 / *! 40101 SET @saved_cs_client = @@ character_set_client /; 24 / ! 40101 SET character_set_client = utf8 * /; 25 СОЗДАТЬ ТАБЛИЦУ account_product_prices(`
Майкл Де Сильва,

4

Работает корректно ...

C:\>mysql>bin>mysql -u USERNAME DB_NAME < tableNameFile.sql

обратите внимание, что файл .sql определяет вашу текущую базу данных.


4

Прежде всего, войдите в свою базу данных и проверьте, недоступна ли таблица базы данных, которую вы хотите импортировать, в вашей базе данных.

Если он доступен, удалите таблицу с помощью команды. В противном случае при импорте таблицы будет выдана ошибка.

DROP TABLE Table_Name;

Затем перейдите в папку, в которой у вас есть .sqlфайл для импорта, и выполните следующую команду с вашего терминала

mysql -u username -p  databasename  < yourtable.sql

Терминал попросит вас ввести пароль. Введите его и проверьте базу данных.


2

Мы можем импортировать одну таблицу с помощью CMD, как показано ниже:

D:\wamp\bin\mysql\mysql5.5.24\bin>mysql -h hostname -u username -p passowrd databasename < filepath

2

если у вас уже есть нужная таблица в вашей базе данных, сначала удалите ее, а затем выполните команду ниже:

 mysql -u username -p  databasename  < yourtable.sql

2

С сервера на локальный (экспорт)

mysqldump -u username -p db_name table_name > path/filename.sql;
mysqldump -u root -p remotelab welcome_ulink > 
/home_local/ladmin/kakalwar/base/welcome_ulink.sql;

С локального на сервер (импорт)

mysql -u username -p -D databasename < path/x/y/z/welcome_queue.sql
mysql -u root -p -D remotelab < 
/home_local/ladmin/kakalwar/instant_status/db_04_12/welcome_queue.sql

2
Для новичков, обратите внимание, вы должны работать с терминала, а не внутри mysql, после нажатия команды он запросит пароль db_password
Венкатеш Какалвар

2

Также его работа. В командной форме

cd C:\wamp\bin\mysql\mysql5.5.8\bin //hit enter
mysql -u -p databasename //-u=root,-p=blank

2
  • Это будет комбинация EXPORT INTO OUTFILEиLOAD DATA INFILE

  • Вам нужно экспортировать эту единственную таблицу с помощью EXPORT INTO OUTFILE, это приведет к экспорту данных таблицы в файл. Вы можете импортировать эту конкретную таблицу, используяLOAD DATA INFILE

  • Обратитесь к doc1 , doc2


1

вы можете сделать это в команде mysql вместо команды linux.
1. войдите в свой mysql.
2. выполните команду mysql:
use DATABASE_NAME;
SET autocommit=0 ; source ABSOLUTE_PATH/TABLE_SQL_FILE.sql ; COMMIT ;


1
mysql -u root -p -D dbname < tablename.sql

1
Хотя этот фрагмент кода приветствуется и может оказать некоторую помощь, его можно было бы значительно улучшить, если бы он включал объяснение того, как и почему это решает проблему. Помните, что вы отвечаете на вопрос будущих читателей, а не только человеку, который задает его сейчас! Пожалуйста , измените свой ответ , чтобы добавить объяснение, и дать указание о том , что применять ограничения и допущения.
Тоби Спейт

1

Если вы находитесь в pwd дампа SQL и вам нужна таблица из него, сделайте следующее:

sed -n '/-- Table structure for table `'TableNameTo_GrabHere'`/,/-- Table/{ /^--.*$/d;p }' dump_file_to_extract_from.sql > table_name_here.sql

Затем просто импортируйте таблицу, которую вы извлекли из приведенного выше, в необходимую базу данных.



0

Использование временной базы данных может быть решением в зависимости от размера базы данных.

mysql -u [username] -p -e "create database tempdb"
mysql -u [username] -p tempdb < db.sql
mysqldump -u [username] -p tempdb _table_to_import_ > table_to_import.sql
mysql -u [username] -p maindb < table_to_import.sql

0

Чтобы импортировать таблицу в базу данных, если таблица уже существует, добавьте эту строку в свой файл sql DROP TABLE IF EXIST 'table_name'и запустите команду mysql -u username -p database_name < import_sql_file.sql. Перед выполнением команды проверьте путь к файлу sql.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.