Назад | Перейти на главную страницу

Экспорт локальной таблицы MySQL в удаленную базу данных

Я пытаюсь экспортировать только некоторые таблицы в локальной базе данных в удаленную базу данных, которая имеет то же имя, что и эти таблицы + некоторые другие таблицы (я хочу перезаписать таблицы удаленной базы данных, которые имеют то же имя, с локальными, которые у меня есть из моя база данных, обе базы данных называются wordpress).

Немного поиграв в Google, я подумал, что следующая команда должна работать:

mysqldump -u USER --single-transaction --compress --order-by-primary --databases wordpress wp_posts wp_postmeta wp_comments wp_commentmeta wp_users wp_usermeta -pPASSWORD1 | mysql -u USER -pPASSWORD2 --port=REMOTE_PORT --host=REMOTE_HOST

Но это дает мне следующую ошибку:

mysqldump: Got error: 1049: Unknown database 'wp_posts' when selecting the database

Зачем?

--databases позволяет указать, какие базы данных вы хотите сбросить, поэтому, делая то, что вы делаете, вы говорите ему сбрасывать все эти базы данных, которые после wordpress являются таблицами в базе данных wordpress.

Вы хотите это

mysqldump -u USER --single-transaction --order-by-primary wordpress wp_posts wp_postmeta wp_comments wp_commentmeta wp_users wp_usermeta -pPASSWORD1 | mysql -u USER -pPASSWORD2 --port=REMOTE_PORT --host=REMOTE_HOST wordpress

Просто удалите --databases флаг. Я бы также добавил --compress флаг клиенту mysql для импорта. Также убедитесь, что вы создали базу данных на удаленной стороне.

CREATE DATABASE wordpress;

Вот справка по mysqldump

Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help