Mysql备份
目的 为了后续迁移方便,方便恢复,防止意外,确保网站迁移时数据不会丢失。无论是因为技术故障、操作失误,还是遭遇黑客攻击,有备份在手,我们就能快速恢复博客,避免数据丢失带来的困扰。 备份方法 我将整个备份过程制作成了一个流程图,简明扼要地展示了每一步操作: 我的博客系统中主要是备份 mysql和上传的 资源文件,主要是针对这两方面进行备份 mysql备份 通过mysql自带mysqldump进行备份 程序查询表的所有数据,模拟mysqldump备份 资源文件备份 压缩备份 mysql备份 mysql 最佳备份方式无疑是使用 mysql 自带的 mysqldump 工具。然而,当你的 MySQL 数据库和项目部署在不同的服务器上,或者使用 Docker 等容器化技术时,通过程序执行命令脚本可能无法正常使用。因此,可以通过模拟 mysqldump 备份的方式来实现 MySQL 的备份。下面我们将先分析 mysqldump,然后通过代码实现备份。 基本备份命令 要备份一个MySQL数据库,可以使用以下命令: mysqldump -u [username] -p [database_name] > [backup_file].sql -u [username]:数据库用户名 -p:提示输入数据库用户密码 [database_name]:要备份的数据库名称 > [backup_file].sql:备份文件的输出路径和文件名 示例: mysqldump -u root -p mydatabase > mydatabase_backup.sql 恢复备份命令 从备份文件恢复数据库,可以使用以下命令: mysql -u [username] -p [database_name] < [backup_file].sql 示例: mysql -u root -p mydatabase < mydatabase_backup.sql 备份文件结构 通过分析 mysqldump 生成的备份文件,可以看到其中的表结构和数据。下面是对表 b_article_tag 的完整备份结构: -- -- Table structure for table b_article_tag -- DROP TABLE IF EXISTS b_article_tag; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE b_article_tag ( id int NOT NULL AUTO_INCREMENT COMMENT 'id', article_id int NOT NULL COMMENT '文章id', tag_id int NOT NULL COMMENT '标签id', PRIMARY KEY (id) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='文章标签关联'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table b_article_tag -- LOCK TABLES b_article_tag WRITE; /*!40000 ALTER TABLE b_article_tag DISABLE KEYS */; INSERT INTO b_article_tag VALUES (1,1,1),(2,2,2),(3,3,1),(4,4,2),(5,5,1),(6,6,2),(7,7,1),(8,8,2),(9,9,1),(10,10,2),(12,14,3); /*!40000 ALTER TABLE b_article_tag ENABLE KEYS */; UNLOCK TABLES; 让我们逐行解释这个脚本的含义。 ...