Як зробити резервну копію єдиної таблиці в базі даних MySQL?


441

За замовчуванням mysqldumpзаймає резервну копію всієї бази даних. Мені потрібно створити резервну копію єдиної таблиці в MySQL. Це можливо? Як відновити його?

Відповіді:


838

Вивантажте та відновіть одну таблицю з .sql

Звалити

mysqldump db_name table_name > table_name.sql

Скидання з віддаленої бази даних

mysqldump -u <db_username> -h <db_host> -p db_name table_name > table_name.sql

Для подальшого ознайомлення:

http://www.abbeyworkshop.com/howto/lamp/MySQL_Export_Backup/index.html

Відновлювати

mysql -u <user_name> -p db_name
mysql> source <full_path>/table_name.sql

або в одному рядку

mysql -u username -p db_name < /path/to/table_name.sql


Вивантажте та відновіть одну таблицю із стисненого (.sql.gz) формату

Кредит: Джон МакГрат

Звалити

mysqldump db_name table_name | gzip > table_name.sql.gz

Відновлювати

gunzip < table_name.sql.gz | mysql -u username -p db_name


13
Зазвичай SQL добре стискається - ви можете передати команду вище через gzip, і отриманий файл буде набагато меншим: mysqldump db_name table_name | gzip > table_name.sql.gz відновити: gunzip < table_name.sql.gz | mysql -u username -p db_name
Джон МакГрат

Що робити, якщо ви хочете включити пароль у командному рядку? Отже, ви вже використовуєте -pPASSWORD
Freedo

23

mysqldump може приймати параметр tbl_name, щоб він створював резервні копії даних.

mysqldump -u -p yourdb yourtable > c:\backups\backup.sql

15

спробуйте

for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase");
do 
mysqldump -u... -p.... NameDataBase $line > $line.sql ; 
done
  • таблиці імен доменних рядків $;)

1
Це зручно для скидання бази даних в окремі запити таблиці - чи можу я знати, що саме роблять варіанти?
xiankai

Привіт, -AN (- no-auto-rehash, -A | --skip-column-names, -N Не записуйте імена стовпців у результати.) -E (- Execute = оператор, -e оператор | Виконати Формат виводу за замовчуванням такий, як у форматі --batch.) fuente
Робін Гомес

12

Ми можемо взяти дамп mysql будь-якої конкретної таблиці з будь-яким заданим умовою, як нижче

mysqldump -uusername -p -hhost databasename tablename --skip-lock-tables

Якщо ми хочемо додати конкретну, де умова в таблиці, тоді ми можемо використовувати наступну команду

mysqldump -uusername -p -hhost databasename tablename --where="date=20140501" --skip-lock-tables

8

Ви можете легко використовувати для скидання вибраних таблиць, використовуючи MYSQLWorkbench toolокремо або групу таблиць на одному дампі, а потім імпортувати їх наступним чином: також ви можете додати інформацію про хост, якщо ви запускаєте її у вашому локальному регіоні, додавши -h IP.ADDRESS.NUMBER після-u ім'я користувача

mysql -u root -p databasename < dumpfileFOurTableInOneDump.sql 

На жаль, у Mysql Workbench виникають деякі проблеми, які можуть призвести до експорту недійсних даних, які є марними ...
barell

6

Ви можете використовувати цей код:

Цей приклад бере резервну копію бази даних sugarcrm і скидає вихід на sugarcrm.sql

# mysqldump -u root -ptmppassword sugarcrm > sugarcrm.sql

# mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

Sugarcrm.sql буде містити таблицю крапель, створювати таблицю та вставляти команду для всіх таблиць у базі даних sugarcrm. Далі наводиться частковий вихід sugarcrm.sql, показуючи інформацію про скидання таблиці account_contacts:

-

- Структура таблиці для столу accounts_contacts

DROP TABLE IF EXISTS `accounts_contacts`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `accounts_contacts` (
`id` varchar(36) NOT NULL,
`contact_id` varchar(36) default NULL,
`account_id` varchar(36) default NULL,
`date_modified` datetime default NULL,
`deleted` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `idx_account_contact` (`account_id`,`contact_id`),
KEY `idx_contid_del_accid` (`contact_id`,`deleted`,`account_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SET character_set_client = @saved_cs_client;

--

5

Ви можете використовувати наведений нижче код:

  1. Для резервного копіювання структури однієї таблиці

-

mysqldump -d <database name> <tablename> > <filename.sql>
  1. Для структури однієї таблиці з даними

-

mysqldump <database name> <tablename> > <filename.sql>

Сподіваюся, це допоможе.


5

Ви можете використовувати mysqldumpз командного рядка:

mysqldump -u username -p password dbname tablename > "path where you want to dump"

Ви також можете використовувати MySQL Workbench:

Перейдіть ліворуч> Експорт даних> Виберіть схему> Виберіть таблиці та натисніть Експорт


лише невелика інформація, пропустіть пробіл між -p та паролем -> -пардом, але його небезпечно
Agung
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.