Mysql 数据备份与恢复
作者:互联网
数据备份
使用工具导出
工具导出文件包含创建数据库和其他sql语句
导出内容dbname.sql
/*
SQLyog Ultimate v12.08 (32 bit)
MySQL - 5.7.27 : Database - dbname
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!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 */;
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 SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_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 @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_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 */;
--
-- 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 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 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 @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_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 */;
--
-- 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 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 2022-08-15 14:40:29
导出数据库指定表
E:\MySQL>mysqldump -u root -p dbname my_user > e:/MySQL/my_user.sql
Enter password: *****
导出内容与dbname.sql类似
数据恢复
- 导入脚本有创建数据库,则不需要选择数据库,即使选择了数据库,脚本里也会改变数据库为脚本里数据库。
- 导入脚本没有创建数据库,需要先选择数据库,再导入脚本。
使用工具导入
-
直接导入
-
导入脚本
命令导入
使用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命令导入
- 连接数据库
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))
- 创建数据库
mysql> create database dbname1;
Query OK, 1 row affected (0.00 sec)
- 使用数据库
mysql> use dbname1;
Database changed
- 导入
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
标签:SET,OLD,--,恢复,Mysql,数据备份,SQL,40101,CHECKS 来源: https://www.cnblogs.com/saltish/p/16400347.html