Когато работите с MySQL, може да се наложи редовно да архивирате и възстановявате MySQL база данни. Помага за възстановяване в случай на злополука. Ето как можете да архивирате и възстановите MySQL база данни.
mysqldump е лесен начин за архивиране на MySQL база данни. Той идва в комплект заедно с файлове за настройка на MySQL. Той се инсталира на вашия компютър, когато инсталирате MySQL. Той създава *.sql файл с DROP таблица , СЪЗДАВАНЕ на таблица и INSERT в SQL изрази на вашата база данни. За да възстановите базата данни MySQL, изпълнете файла *.sql в целевата база данни.
Можете да използвате mysqldump за архивиране на една или множество бази данни. Можете дори да архивирате конкретни таблици в база данни.
Ето синтаксиса на командите за архивиране и възстановяване на MySQL база данни:
backup: # mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql restore:# mysql -u root -p[root_password] [database_name] < dumpfilename.sql
Как да архивирам MySQL база данни
1. Архивирайте една база данни:
Да кажем, че искате резервно копие на sample_db база данни. Например, вашата root парола е ‘passwd’
# mysqldump -u root -ppasswd sample_db > sample_db.sql
Тази команда прави архивиране и изхвърля изхода на базата данни в sample_db.sql. Sales_db.sql ще съдържа таблица за пускане, създаване на таблица и команда за вмъкване за всички таблици в базата данни sales_db. Следва частичен изход на sales_db.sql, показващ информацията за дъмпа:
-- -- Table structure for table `user_table` -- DROP TABLE IF EXISTS `user_table`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `user_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(75) DEFAULT NULL, `email` varchar(75) NOT NULL, `password` varchar(128) NOT NULL, `date_joined` datetime NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `user_table` -- LOCK TABLES `user_table` WRITE; /*!40000 ALTER TABLE `user_table` DISABLE KEYS */; INSERT INTO `user_table` VALUES (1,'test_user','[email protected]','sha1$96e28$effdf3bfe8d0477','2012-12-12 23:17:10'),(7,'[email protected]','[email protected]','sha1$5e05960cede8','2013-02-05 14:56:04'),(8,'[email protected]','[email protected]','sha1$c2497b6420379ac76','2013-02-05 14:57:01'); /*!40000 ALTER TABLE `user_table` ENABLE KEYS */; UNLOCK TABLES;
2. Архивиране на множество бази данни:
Изберете базите данни, които искате да архивирате. Ето как можете да получите списък с всички бази данни:
# mysql -u root -ppasswd mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | sample_db | | mysql | | sample_sales_db | +--------------------+ 4 rows in set (0.00 sec)
Да речем, че искате да направите резервно копие на базата данни sample_db и sample_sales_db. Изпълнете mysqldump, както е показано:
# mysqldump -u root -ppasswd --databases sample_db sample_sales_db > multi_databases.sql
3. Архивирайте всички бази данни:
Ето как архивирате всички бази данни на вашия MySQL екземпляр.
# mysqldump -u root -ppasswd --all-databases > all-database.sql
4. Архивирайте конкретна таблица:
Да кажем, че искаме да архивираме само таблицата user_table от sample_db база данни.
# mysqldump -u root -ppasswd sample_db user_table > sample_db_user_table.sql
Как да възстановим MySQL база данни
За да възстановите базата данни sample_db, изпълнете mysql с <, както е показано по-долу. Уверете се, че базата данни, в която възстановявате своя .sql файл, съществува на вашия компютър. В противен случай можете да създадете нова база данни и след това да извършите възстановяването.