0、mysql实验版本
1、mysqldump备份操作详解:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| -d --no-data No row information 只导出数据结构 -t --no-create-info 只导出数据(不包含结构) 1)导出所有数据库 mysqldump -u root -p --all-databases > all_db.dump 2)导出指定数据库 mysqldump -u root -p zabbixDB > zabbix.dump 3) 导出多个数据库 mysqldump -u root -p --databases zabbixDB mysql > zabbix_mysql.dump 4)导出一个表 mysqldump -u root -p zabbixDB task > zabbixDB_task.dump 5)导出一个数据库的多个表 mysqldump -u root -p --databases zabbixDB --tables trends users > zabbix_trends_users.dump 6)条件导出----导出db1表a1中id=1的数据 mysqldump -uroot -p --databases db1 --tables a1 --where='id=1' > db1_a1_id.dump 7)将h1服务器中的db1数据库的所有数据导入到h2中的db2数据库中,db2的数据库必须存在否则会报错 mysqldump --host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot db2 8)压缩备份 mysqldump -uroot -p --databases zabbixDB 2>/dev/null |gzip > zabbixDB.gz
|
##开始实验
2、源库插入测试数据
1 2 3 4
| create database aaaa; use aaaa; create table aa (id int primary key); insert into aa values('1');
|
3、导出备份
1
| mysqldump -u root -p --all-databases --set-gtid-purged=OFF > /tmp/test.dump
|
4、在目标数据库进行还原,全库导入
1
| mysql -u root -p12345678 < test.dump
|
因为mysqldump属于逻辑备份,恢复步骤为先检查要恢复的database是否存在,如果不存在就手动创建,如果存在就进入database去检查表是否存在,如果存在,会先删除再手动创建,表创建完成之后插入数据,分析dump文件,具体内容如下:
4.1、创建database:
1 2 3 4 5
| -- -- Current Database: `aaaa` -- CREATE DATABASE /*!32312 IF NOT EXISTS*/ `aaaa` /*!40100 DEFAULT CHARACTER SET utf8mb4 */; USE `aaaa`;
|
4.2、检查并创建表aaa:
1 2 3 4 5 6 7 8 9 10 11
| -- -- Table structure for table `aaa` -- DROP TABLE IF EXISTS `aaa`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `aaa` ( `id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */;
|
4.3、对表aaa插入备份出来的数据:
1 2 3 4 5 6 7 8
| -- -- Dumping data for table `aaa` -- LOCK TABLES `aaa` WRITE; /*!40000 ALTER TABLE `aaa` DISABLE KEYS */; INSERT INTO `aaa` VALUES (1); /*!40000 ALTER TABLE `aaa` ENABLE KEYS */; UNLOCK TABLES;
|