Mysql 数据备份与恢复


数据备份

使用工具导出

工具导出文件包含创建数据库和其他sql语句
Mysql 数据备份与恢复

Mysql 数据备份与恢复

导出内容dbname.sql

/*
SQLyog Ultimate v12.08 (32 bit)
MySQL - 5.7.27 : Database - dbname
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`dbname` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `dbname`;

/*Table structure for table `my_user` */

DROP TABLE IF EXISTS `my_user`;

CREATE TABLE `my_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

/*Data for the table `my_user` */

insert  into `my_user`(`id`,`name`,`create_dt`) values (1,'小明','2022-08-11 15:46:39');

/* Procedure structure for procedure `in_param` */

/*!50003 DROP PROCEDURE IF EXISTS  `in_param` */;

DELIMITER $$

/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `in_param`(in p_in int)
begin
  select p_in;
  set p_in=2;
  select p_in;
end */$$
DELIMITER ;

/* Procedure structure for procedure `pc_add_user` */

/*!50003 DROP PROCEDURE IF EXISTS  `pc_add_user` */;

DELIMITER $$

/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `pc_add_user`(in i_name varchar(30))
begin
    insert into my_user(name) values(i_name);
end */$$
DELIMITER ;

/*!40101 SET [email protected]_SQL_MODE */;
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;
/*!40014 SET [email protected]_UNIQUE_CHECKS */;
/*!40111 SET [email protected]_SQL_NOTES */;

使用mysqldump命令导出

不包含创建数据库命令

E:/MySQL>mysqldump -u root -p dbname > e:/MySQL/dbname1.sql
Enter password: *****

导出内容dbname.sql

-- MySQL dump 10.13  Distrib 5.7.27, for Win64 (x86_64)
--
-- Host: localhost    Database: dbname
-- ------------------------------------------------------
-- Server version	5.7.27

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @[email protected]@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `my_user`
--

DROP TABLE IF EXISTS `my_user`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `my_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `my_user`
--

LOCK TABLES `my_user` WRITE;
/*!40000 ALTER TABLE `my_user` DISABLE KEYS */;
INSERT INTO `my_user` VALUES (1,'小明','2022-08-11 15:46:39');
/*!40000 ALTER TABLE `my_user` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET [email protected]_TIME_ZONE */;

/*!40101 SET [email protected]_SQL_MODE */;
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;
/*!40014 SET [email protected]_UNIQUE_CHECKS */;
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_COLLATION_CONNECTION */;
/*!40111 SET [email protected]_SQL_NOTES */;

-- Dump completed on 2022-08-15 14:38:20

包含创建数据库命令

E:/MySQL>mysqldump -u root -p --databases dbname > e:/MySQL/dbname2.sql
Enter password: *****

导出内容dbname2.sql

-- MySQL dump 10.13  Distrib 5.7.27, for Win64 (x86_64)
--
-- Host: localhost    Database: dbname
-- ------------------------------------------------------
-- Server version	5.7.27

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @[email protected]@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;

--
-- Current Database: `dbname`
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `dbname` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `dbname`;

--
-- Table structure for table `my_user`
--

DROP TABLE IF EXISTS `my_user`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `my_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `my_user`
--

LOCK TABLES `my_user` WRITE;
/*!40000 ALTER TABLE `my_user` DISABLE KEYS */;
INSERT INTO `my_user` VALUES (1,'小明','2022-08-11 15:46:39');
/*!40000 ALTER TABLE `my_user` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET [email protected]_TIME_ZONE */;

/*!40101 SET [email protected]_SQL_MODE */;
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;
/*!40014 SET [email protected]_UNIQUE_CHECKS */;
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_COLLATION_CONNECTION */;
/*!40111 SET [email protected]_SQL_NOTES */;

-- Dump completed on 2022-08-15 14:40:29

导出数据库指定表

E:/MySQL>mysqldump -u root -p dbname my_user > e:/MySQL/my_user.sql
Enter password: *****

导出内容与dbname.sql类似

数据恢复

  • 导入脚本有创建数据库,则不需要选择数据库,即使选择了数据库,脚本里也会改变数据库为脚本里数据库。
  • 导入脚本没有创建数据库,需要先选择数据库,再导入脚本。

使用工具导入

  1. 直接导入
    Mysql 数据备份与恢复

  2. 导入脚本
    Mysql 数据备份与恢复

命令导入

使用mysql命令

本机-h可以省略,指定数据库d2无效,因为dbname.sql脚本包含创建数据库dbname,并use dbname数据库。

E:/MySQL>mysql -h 127.0.0.1 -u root -p d2 < E:/MySQL/dbname.sql
Enter password: *****

指定数据库d2有效,因为dbname1.sql脚本没有创建数据库语句,没有use 新数据库。

E:/MySQL>mysql -h 127.0.0.1 -u root -p d2 < E:/MySQL/dbname1.sql
Enter password: *****

使用source命令导入

  1. 连接数据库
E:/MySQL>mysql -u root -p
Enter password: *****
Welcome to the MySQL monitor.  Commands end with ; or /g.
Your MySQL connection id is 155
Server version: 5.7.27 MySQL Community Server (GPL))
  1. 创建数据库
mysql> create database dbname1;
Query OK, 1 row affected (0.00 sec)
  1. 使用数据库
mysql> use dbname1;
Database changed
  1. 导入
mysql> source E:/MySQL/dbname1.sql
Query OK, 0 rows affected (0.00 sec)

导入时候Error Code: 2006 – MySQL server has gone away

修改配置文件my.ini
max_allowed_packet=16M
wait_timeout=400000
interactive_timeout = 400000

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/280781.html

(0)
上一篇 2022年8月16日
下一篇 2022年8月16日

相关推荐

发表回复

登录后才能评论