mysqldump 是 MySQL 原生的备份工具。具有如下优点:
预计部署时间:20分钟
级别:初级
相关产品:关系型数据库 MySQL 5.7.32 版本
受众: 通用
如果还没有火山引擎账号,点击此链接注册账号
如果您还没有 VPC,请先点击链接创建VPC
关系型数据库 MySQL 5.7.32 版本
云服务器ECS:Centos 7
在 ECS 主机上准备 MySQL 客户端
由于仅做测试使用,数据库中仅有少量数据。
mysql> create database rudonx1; Query OK, 1 row affected (0.04 sec) mysql> use rudonx1; Database changed mysql> create table t1(id int); Query OK, 0 rows affected (0.03 sec) mysql> insert into t1 values(1); Query OK, 1 row affected (0.05 sec) mysql> create view t1_view as select * from t1; Query OK, 0 rows affected (0.04 sec)
运行命令如下:
(base) [root@ip-10-0-0-22 ~]# mysqldump -h 111.xx.xx.xx -urudonx -p'$password' --databases rudonx1 --routines --triggers --set-gtid-purged=off --master-data=2 --single-transaction > mysqldump.sql mysqldump: [Warning] Using a password on the command line interface can be insecure.
备份结束后,备份内容在 mysqldump.sql 中。查看文件内容如下(文件中省略部分内容):
(base) [root@ip-10-0-0-22 ~]# cat mysqldump.sql -- MySQL dump 10.13 Distrib 5.7.19, for Linux (x86_64) -- -- Host: xx.xx.xx.xx Database: rudonx1 -- ------------------------------------------------------ -- Server version 5.7.32-log -- -- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='binlog.000172', MASTER_LOG_POS=59429210; -- -- Current Database: `rudonx1` -- CREATE DATABASE /*!32312 IF NOT EXISTS*/ `rudonx1` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `rudonx1`; -- -- Table structure for table `t1` -- DROP TABLE IF EXISTS `t1`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `t1` ( `id` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `t1` -- LOCK TABLES `t1` WRITE; /*!40000 ALTER TABLE `t1` DISABLE KEYS */; INSERT INTO `t1` VALUES (1); /*!40000 ALTER TABLE `t1` ENABLE KEYS */; UNLOCK TABLES; -- -- Temporary table structure for view `t1_view` -- DROP TABLE IF EXISTS `t1_view`; /*!50001 DROP VIEW IF EXISTS `t1_view`*/; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; /*!50001 CREATE VIEW `t1_view` AS SELECT 1 AS `id`*/; SET character_set_client = @saved_cs_client; -- -- Dumping routines for database 'rudonx1' -- -- -- Current Database: `rudonx1` -- USE `rudonx1`; -- -- Final view structure for view `t1_view` -- /*!50001 DROP VIEW IF EXISTS `t1_view`*/; …… -- Dump completed on 2022-05-10 8:33:37
进行单表备份的命令如下,请您参考,其中指定了需要备份 rudonx1.t1 表。
[root@rudonx ~]# mysqldump -h 111.xx.xx.xx -urudonx -p'$password' rudonx1 t1 --set-gtid-purged=OFF > t1.sql
MySQL 恢复备份文件非常简单,只需要运行如下命令即可,需要注意的是,/root 为备份文件存放的目录,在执行命令时需要指定。
mysql> source /root/mysqldump.sql
更多参数,请您参考文档[1]。
您可以从 MySQL 和 ECS 控制台中轻松删除实例。如果您不再使用,建议您执行删除操作,以免继续为其付费。
[1] https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
如果您有其他问题,欢迎您联系火山引擎技术支持服务。