Linux mysqldump 数据库备份与还原

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

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

mysql> use mydb
Database changed
mysql> 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 mydb
Database changed
mysql> source /dd/tmp/mydb1.sql




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值