sql >> Database >  >> RDS >> Mysql

Hoe een MySQL-database back-uppen en herstellen?

Als u met MySQL werkt, moet u mogelijk regelmatig een back-up maken van de MySQL-database en deze herstellen. Het helpt herstellen bij ongevallen. Hier leest u hoe u een MySQL-database kunt back-uppen en herstellen.

mysqldump is een gemakkelijke manier om een ​​MySQL-database te back-uppen. Het wordt geleverd samen met MySQL-installatiebestanden. Het wordt op uw computer geïnstalleerd wanneer u MySQL installeert. Het maakt een *.sql-bestand aan met DROP-tabel , TABEL MAKEN en INSERT in SQL-statements van uw database. Om de MySQL-database te herstellen, voert u het *.sql-bestand uit op de doeldatabase.

U kunt mysqldump gebruiken om een ​​back-up te maken van enkele of meerdere databases. U kunt zelfs een back-up maken van specifieke tabellen in een database.

Hier is de syntaxis van opdrachten om een ​​back-up te maken en de MySQL-database te herstellen:

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

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

Hoe een MySQL-database te back-uppen

1. Back-up van een enkele database:

Stel dat u een back-up wilt van de sample_db-database. Uw root-wachtwoord is bijvoorbeeld 'passwd'

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

Deze opdracht maakt een back-up en dumpt de uitvoer van de database in sample_db.sql. De sales_db.sql zal drop table, create table en insert commando bevatten voor alle tabellen in de sales_db database. Hieronder volgt een gedeeltelijke uitvoer van sales_db.sql, met de dumpinformatie:

--
-- 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. Back-up van meerdere databases:

Selecteer de databases waarvan u een back-up wilt maken. Zo krijgt u een lijst van alle databases:

# mysql -u root -ppasswd

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

Stel dat u een back-up wilt maken van zowel de sample_db- als de sample_sales_db-database. Voer mysqldump uit zoals weergegeven:

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

3. Maak een back-up van alle databases:

Zo maakt u een back-up van alle databases van uw MySQL-instantie.

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

4. Back-up van een specifieke tabel:

Laten we zeggen dat we alleen een back-up willen maken van de tabel user_table uit de sample_db-database.

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

Hoe MySQL-database herstellen

Om de sample_db-database te herstellen, voert u mysql uit met

  1. 4 manieren om NULL te vervangen door een andere waarde in MySQL

  2. Hoe MySQL te installeren met phpMyAdmin op Debian 7

  3. De PostgreSQL-upgrade ontwarren

  4. Hoe PL/SQL opgeslagen procedures te creëren zonder parameters in Oracle Database?