Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да архивирам и възстановя MySQL база данни?

Когато работите с 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 файл, съществува на вашия компютър. В противен случай можете да създадете нова база данни и след това да извършите възстановяването.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. HOUR() Примери – MySQL

  2. Вмъкване/актуализиране на помощна функция с помощта на PDO

  3. MySQL репликация и отказване, базирано на GTID - дълбоко потапяне в грешни транзакции

  4. MAKEDATE() Примери – MySQL

  5. PHP PDO срещу нормален mysql_connect