Linux mysqldump 数据库备份与还原

来源:互联网 发布:怎么成为算法工程师 编辑:程序博客网 时间:2024/05/01 07:04

1、备份单个数据库下所有表格

在备份mydb数据库前,先看下mydb有哪些表

mysql> use mydbDatabase changedmysql> show tables;+----------------+| Tables_in_mydb |+----------------+| TStudent       || Tprice         |+----------------+2 rows in set (0.00 sec)


备份mydb数据库

[root@localhost tmp]# mysqldump -uroot -p123456 --compact mydb >mydb1.sql

查看备份文件内容

[root@localhost tmp]# cat mydb1.sql /*!40101 SET @saved_cs_client     = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `TStudent` (  `name` varchar(50) DEFAULT NULL,  `age` int(20) DEFAULT NULL,  `sex` varchar(50) DEFAULT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;/*!40101 SET character_set_client = @saved_cs_client */;INSERT INTO `TStudent` VALUES ('zhangsan',20,'male'),('lisi',21,'female');/*!40101 SET @saved_cs_client     = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `Tprice` (  `name` varchar(50) DEFAULT NULL,  `price` int(20) DEFAULT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;/*!40101 SET character_set_client = @saved_cs_client */;

可以看到备份文件内容包含创建两个表格的语句和向表格中插入数据的语句,无创建数据库的语句。


2、备份数据库指定的表格

[root@localhost tmp]# mysqldump -uroot -p123456 --compact mydb TStudent >mydb_TStudent.sql[root@localhost tmp]# cat mydb_TStudent.sql /*!40101 SET @saved_cs_client     = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `TStudent` (  `name` varchar(50) DEFAULT NULL,  `age` int(20) DEFAULT NULL,  `sex` varchar(50) DEFAULT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;/*!40101 SET character_set_client = @saved_cs_client */;INSERT INTO `TStudent` VALUES ('zhangsan',20,'male'),('lisi',21,'female');

3、备份所有数据库

先看下有哪些数据库

mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || mydb               || mydb2              || mysql              || test               || wordpress          |+--------------------+


mysqldump -uroot -p123456 --compact --all-databases >myalldatabases.sql

备份文件内容太多,只截取其中一部分

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mydb` /*!40100 DEFAULT CHARACTER SET latin1 */;USE `mydb`;/*!40101 SET @saved_cs_client     = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `TStudent` (  `name` varchar(50) DEFAULT NULL,  `age` int(20) DEFAULT NULL,  `sex` varchar(50) DEFAULT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;/*!40101 SET character_set_client = @saved_cs_client */;INSERT INTO `TStudent` VALUES ('zhangsan',20,'male'),('lisi',21,'female');/*!40101 SET @saved_cs_client     = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `Tprice` (  `name` varchar(50) DEFAULT NULL,  `price` int(20) DEFAULT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;/*!40101 SET character_set_client = @saved_cs_client */;

由于是对多个数据库进行备份,所以该备份文件内容中是含创建数据库的语句。


4、还原数据库

还原数据两种方式:

方式一:命令行模式

mysql -uroot -p123456 mydb <mydb1.sql

方式二:mysql环境下

mysql> use mydbDatabase changedmysql> source /dd/tmp/mydb1.sql




0 0
原创粉丝点击