Jak wykonać kopię zapasową pojedynczej tabeli w bazie danych MySQL?

Domyślnie, mysqldump wykonuje kopię zapasową całej bazy danych. Muszę wykonać kopię zapasową jednej tabeli w MySQL. Czy to możliwe? Jak go przywrócić?

Author: JYelton, 2011-07-13

9 answers

Zrzut i przywróć pojedynczą tabelę z .sql

Dump

mysqldump db_name table_name > table_name.sql

Dumping ze zdalnej bazy danych

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

Dla dalszego odniesienia:

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

Restore

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

Lub w jednym wierszu

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


Zrzut i przywróć pojedynczą tabelę ze skompresowanego (.sql.gz) format

Kredyt: John McGrath

Dump

mysqldump db_name table_name | gzip > table_name.sql.gz

Restore

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

 873
Author: Ozair Kafray,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:42

Mysqldump może pobierać parametr tbl_name, dzięki czemu tworzy tylko kopie zapasowe podanych tabel.

mysqldump -u -p yourdb yourtable > c:\backups\backup.sql
 25
Author: Jacob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-13 17:22:14

Try

for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase");
do 
mysqldump -u... -p.... NameDataBase $line > $line.sql ; 
done
  • $line cotent nazwy tabel;)
 15
Author: Robin Gomez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-26 05:03:04

Możemy zrobić zrzut mysql dowolnej tabeli z dowolnym podanym warunkiem jak poniżej

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

Jeśli chcemy dodać do tabeli konkretny warunek where to możemy użyć następującego polecenia

mysqldump -uusername -p -hhost databasename tablename --where="date=20140501" --skip-lock-tables
 12
Author: minhas23,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-09 07:19:54

Możesz łatwo zrzucić wybrane tabele za pomocą MYSQLWorkbench tool, indywidualnie lub grupowo tabel na jednym zrzucie, a następnie zaimportować je w następujący sposób: możesz również dodać Informacje o Hostie, jeśli uruchomisz je w swoim lokalnym poprzez dodanie -h IP.Adres.Liczba PO-u nazwa użytkownika

mysql -u root -p databasename < dumpfileFOurTableInOneDump.sql 
 8
Author: Daniel Adenew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-07 11:21:19

Możesz użyć tego kodu:

Ten przykład pobiera kopię zapasową bazy danych sugarcrm i zrzeka się danych wyjściowych do sugarcrm.sql

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

# mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql
Sugarcrm.sql będzie zawierał polecenie drop table, create table i insert dla wszystkich tabel w bazie danych sugarcrm. Poniżej znajduje się częściowa produkcja sugarcrm.sql, pokazujący zrzut informacji z tabeli accounts_contacts:

--

-- struktura tabeli dla Tabeli 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;

--
 6
Author: Linda Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-20 22:25:59

Możesz użyć poniższego kodu:

  1. do tworzenia kopii zapasowych samej struktury tabeli

-

mysqldump -d <database name> <tablename> > <filename.sql>
  1. dla struktury pojedynczej tabeli z danymi

-

mysqldump <database name> <tablename> > <filename.sql>
Mam nadzieję, że to pomoże.
 5
Author: Phoenix,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-05 12:12:55

Możesz użyć mysqldump z linii poleceń:

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

Możesz również użyć MySQL Workbench:

Przejdź do lewej > Eksport Danych > Wybierz schemat > wybierz tabele i kliknij Eksportuj

 5
Author: SAM AB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-14 23:20:20

Po prostu użyj mysqldump -u root database table lub jeśli używasz z hasłem mysqldump -u root -p pass database table

 1
Author: JaY KuMaR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-09 03:15:09