sql >> Database teknologi >  >> RDS >> Mysql

Hvordan sikkerhedskopieres og gendannes MySQL-database?

Når du arbejder med MySQL, skal du muligvis sikkerhedskopiere og gendanne MySQL-databasen regelmæssigt. Det hjælper med at komme sig i tilfælde af ulykker. Sådan kan du sikkerhedskopiere og gendanne MySQL-databasen.

mysqldump er en nem måde at tage backup af MySQL-database. Det leveres sammen med MySQL-installationsfiler. Det er installeret på din computer, når du installerer MySQL. Det opretter en *.sql-fil med DROP-tabel , OPRET tabel og INDSÆT i SQL-sætninger af din database. For at gendanne MySQL-databasen skal du udføre *.sql-filen på destinationsdatabasen.

Du kan bruge mysqldump til at sikkerhedskopiere enkelte eller flere databaser. Du kan endda sikkerhedskopiere specifikke tabeller i en database.

Her er syntaksen for kommandoer til backup og gendannelse af MySQL-database:

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

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

Sådan sikkerhedskopieres MySQL-database

1. Sikkerhedskopier en enkelt database:

Lad os sige, at du vil have en sikkerhedskopi af sample_db-databasen. Din root-adgangskode er f.eks. 'passwd'

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

Denne kommando tager backup og dumper output fra databasen i sample_db.sql. Sales_db.sql vil indeholde drop table, create table og insert kommando for alle tabellerne i sales_db databasen. Følgende er et delvist output af sales_db.sql, der viser dump-oplysningerne:

--
-- 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. Sikkerhedskopier flere databaser:

Vælg de databaser, du vil sikkerhedskopiere. Sådan kan du få en liste over alle databaser:

# mysql -u root -ppasswd

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

Lad os sige, du vil tage backup af både sample_db og sample_sales_db database. Udfør mysqldump som vist:

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

3. Sikkerhedskopier alle databaserne:

Sådan sikkerhedskopierer du alle databaserne i din MySQL-instans.

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

4. Sikkerhedskopier en specifik tabel:

Lad os sige, at vi kun vil sikkerhedskopiere user_table-tabellen fra sample_db-databasen.

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

Sådan gendannes MySQL-database

For at gendanne sample_db-databasen skal du udføre mysql med

  1. mysql pivot-forespørgselsresultater med GROUP BY

  2. Opnå MySQL Failover &Failback på Google Cloud Platform (GCP)

  3. Dataingeniørinterviewspørgsmål med Python

  4. PHP-visningsbillede BLOB fra MySQL