如何使用mysqldump对mysql进行备份和恢复

技术如何使用mysqldump对mysql进行备份和恢复这篇文章给大家分享的是有关如何使用mysqldump对mysql进行备份和恢复的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mysqld

这篇文章给大家分享的是有关如何使用mysqldump对关系型数据库进行备份和恢复的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

mysqldump是关系型数据库的逻辑备份恢复工具,可以只备份某个表,某个库或者整个数据库。为了保证数据的一致性,备份的时候会加写锁,所以一定要在系统闲的时候用。

语法:

[root@D2-LZY245 ~]# mysqldump

Usage: mysqldump [OPTIONS]数据库[表]

或者MySQL转储[选项] -数据库[选项] DB1 [DB2 DB3.]

或者MySQL转储[选项] -所有数据库[选项]

有关更多选项,请使用MySQL dump帮助

备份测试一库:

[root @ D2-LZY 245 ~]# MySQL转储-uroot-p 123456 test1 test1 _ bk。结构化查询语言

查看生成的备份文件:

[root @ D2-LZY 245 ~]# MySQL转储-uroot-p 123456 test1 test1 _ bk。结构化查询语言

mysqldump :[警告]在命令行界面上使用密码可能不安全。

[root @ D2-LZY 245 ~]# cat test1 _ bk。结构化查询语言

- MySQL转储10.13发行版5.7.15,适用于linux-glibc2.5 (x86_64)

-

-主机:本地主机数据库:测试一

- -

-服务器版本5.7.15

/*!40101 SET @ OLD _ CHARACTER _ SET _ CLIENT=@ @ CHARACTER _ SET _ CLIENT */;

/*!40101 SET @ OLD _ CHARACTER _ SET _ RESULTS=@ @ CHARACTER _ SET _ RESULTS */;

/*!40101 SET @ OLD _ collection _ CONNECTION=@ @ collection _ CONNECTION */;

/*!40101 SET NAMES utf8 */;

/*!40103 SET @ OLD _ TIME _ ZONE=@ @ TIME _ ZONE */;

/*!40103 SET TIME _ ZONE=' 00:00 ' */;

/*!40014 SET @ OLD _ UNIQUE _ CHECKS=@ @ UNIQUE _ CHECKS,UNIQUE _ CHECKS=0 */;

/*!40014 SET @ OLD _ FOREIGN _ KEY _ CHECKS=@ @ FOREIGN _ KEY _ CHECKS,FOREIGN _ KEY _ CHECKS=0 */;

/*!40101 SET @ OLD _ SQL _ MODE=@ @ SQL _ MODE,SQL _ MODE=' NO _ AUTO _ VALUE _ ON _ ZERO ' */;

/*!40111 SET @ OLD _ SQL _ NOtes=@ @ SQL _ NOtes,SQL _ NOtes=0 */;

-

-表"电磁脉冲"的表结构

-

如果存在“电磁脉冲”,则删除表;

/*!40101 SET @ saved _ cs _ client=@ @ character _ SET _ client */;

/*!40101 SET character _ SET _ client=utf8 */;

创建表格“电磁脉冲”(

` employee_id` int(10) DEFAULT NULL,

` first _ name ` varchar(50)DEFAULT NULL,

` last _ name ` varchar(50)DEFAULT NULL,

"工资"十进制(10,2)默认值为空

)ENGINE=Innodb DEFAULT CHARSET=ut F8;

/*!40101 SET character _ SET _ client=@ saved _ cs _ client */;

-

-转储表"电磁脉冲"的数据

-

通信线路(通信线路)

K TABLES `emp` WRITE;
/*!40000 ALTER TABLE `emp` DISABLE KEYS */;
INSERT INTO `emp` VALUES (100,'Steven','King',24000.00),(101,'Neena','Kochhar',17000.00),(102,'Lex','De Haan',17000.00),(103,'Alexander','Hunold',9000.00),(104,'Bruce','Ernst',6000.00),(105,'David','Austin',4800.00),(106,'Valli','Pataballa',4800.00),(107,'Diana','Lorentz',4200.00),(108,'Nancy','Greenberg',12008.00),(109,'Daniel','Faviet',9000.00),(110,'John','Chen',8200.00);
/*!40000 ALTER TABLE `emp` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `emp1`
--

DROP TABLE IF EXISTS `emp1`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `emp1` (
  `employee_id` int(10) DEFAULT NULL,
  `first_name` varchar(50) DEFAULT NULL,
  `last_name` varchar(50) DEFAULT NULL,
  `salary` decimal(10,2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `emp1`
--

LOCK TABLES `emp1` WRITE;
/*!40000 ALTER TABLE `emp1` DISABLE KEYS */;
INSERT INTO `emp1` VALUES (100,'Steven','King',24000.00),(101,'Neena','Kochhar',17000.00),(102,'Lex','De Haan',17000.00),(103,'Alexander','Hunold',9000.00),(104,'Bruce','Ernst',6000.00),(105,'David','Austin',4800.00),(106,'Valli','Pataballa',4800.00),(107,'Diana','Lorentz',4200.00),(108,'Nancy','Greenberg',12008.00),(109,'Daniel','Faviet',9000.00),(110,'John','Chen',8200.00);
/*!40000 ALTER TABLE `emp1` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2017-05-26 18:32:51

备份文件实际上就是SQL脚本,先是设置参数,如果表存在则删除表,然后创建表,锁表,执行插入语句,解锁。恢复的时候执行这个SQL脚本就好了。执行脚本有2种方式,一种是重定向,一种是使用source。

重定向方式:
mysql> create database test2;
Query OK, 1 row affected (0.00 sec)
#创建一个数据库test2,恢复到test2。

[root@D2-LZY245 ~]# mysql -uroot -p123456 test2 < test1_bk.sql

查看确认:
mysql> use test2
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+-----------------+
| Tables_in_test2 |
+-----------------+
| emp             |
| emp1            |
+-----------------+
2 rows in set (0.00 sec)

source方式:
mysql> create database test3;
Query OK, 1 row affected (0.00 sec)

mysql> use test3;
Database changed

mysql> source /root/test1_bk.sql

mysql> show tables;
+-----------------+
| Tables_in_test3 |
+-----------------+
| emp             |
| emp1            |
+-----------------+
2 rows in set (0.00 sec)

这两种方式是有区别的,使用重定向方式,如果有错误会直接退出,不会执行后续的语句,而使用source方式则会跳过错误的地方,继续执行后续的语句。

感谢各位的阅读!关于“如何使用mysqldump对mysql进行备份和恢复”这篇文章就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/66423.html

(0)

相关推荐