Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich eine MySQL-Datenbank sichern und wiederherstellen?

Wenn Sie mit MySQL arbeiten, müssen Sie die MySQL-Datenbank möglicherweise regelmäßig sichern und wiederherstellen. Es hilft bei der Wiederherstellung bei Unfällen. So können Sie die MySQL-Datenbank sichern und wiederherstellen.

mysqldump ist eine einfache Möglichkeit, eine MySQL-Datenbank zu sichern. Es wird zusammen mit MySQL-Setup-Dateien geliefert. Es wird bei der Installation von MySQL auf Ihrem Computer installiert. Es erstellt eine *.sql-Datei mit DROP-Tabelle , CREATE-Tabelle und INSERT into SQL-Anweisungen Ihrer Datenbank. Um die MySQL-Datenbank wiederherzustellen, führen Sie die *.sql-Datei in der Zieldatenbank aus.

Sie können mysqldump verwenden, um einzelne oder mehrere Datenbanken zu sichern. Sie können sogar bestimmte Tabellen in einer Datenbank sichern.

Hier ist die Syntax der Befehle zum Sichern und Wiederherstellen der MySQL-Datenbank:

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

restore:# mysql -u root -p[root_password] [database_name] < dumpfilename.sql

So sichern Sie die MySQL-Datenbank

1. Sichern Sie eine einzelne Datenbank:

Nehmen wir an, Sie möchten eine Sicherung der Datenbank sample_db. Ihr Root-Passwort lautet beispielsweise „passwd“

# mysqldump -u root -ppasswd sample_db > sample_db.sql

Dieser Befehl erstellt eine Sicherungskopie und gibt die Ausgabe der Datenbank in sample_db.sql aus. Die sales_db.sql-Datei enthält Drop-Table-, Create-Table- und Insert-Befehle für alle Tabellen in der sales_db-Datenbank. Es folgt eine Teilausgabe von sales_db.sql, die die Dump-Informationen zeigt:

--
-- 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. Mehrere Datenbanken sichern:

Wählen Sie die Datenbanken aus, die Sie sichern möchten. So erhalten Sie eine Liste aller Datenbanken:

# mysql -u root -ppasswd

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| sample_db          |
| mysql              |
| sample_sales_db    |
+--------------------+
4 rows in set (0.00 sec)

Angenommen, Sie möchten sowohl die Datenbank sample_db als auch die Datenbank sample_sales_db sichern. Führen Sie mysqldump wie gezeigt aus:

# mysqldump -u root -ppasswd --databases sample_db sample_sales_db > multi_databases.sql

3. Alle Datenbanken sichern:

So sichern Sie alle Datenbanken Ihrer MySQL-Instanz.

# mysqldump -u root -ppasswd --all-databases > all-database.sql

4. Sichern Sie eine bestimmte Tabelle:

Angenommen, wir möchten nur die Tabelle user_table aus der Datenbank sample_db sichern.

# mysqldump -u root -ppasswd sample_db user_table > sample_db_user_table.sql

So stellen Sie die MySQL-Datenbank wieder her

Um die Datenbank sample_db wiederherzustellen, führen Sie mysql mit