首页 > 数据库 >常用的MySQL备份/还原 的方法

常用的MySQL备份/还原 的方法

时间:2024-01-15 16:25:32浏览次数:46  
标签:-- 备份 MySQL mysqldump sql mysql 数据库 还原

mysql备份数据库

  1. mysql备份单个数据库
#mysql备份某个库格式:
mysqldump -h主机名 -P端口 -u用户名 -p"密码" --database 数据库名 > 文件名.sql

#实例:mysql备份某个库:
mysqldump -h10.*.*.9 -P3306 -uroot -p"密码" --single-transaction --master-data=2 --set-gtid-purged=OFF --database -B db_mystorage > mysqldump_db_mystorage_`date +%Y%m%d-%H%M`.sql
  1. mysql备份多个数据库
#mysql备份某个库格式:
mysqldump -h主机名 -P端口 -u用户名 -p"密码" --database 数据库名1  数据库名2  数据库名3 > 文件名.sql

#实例:mysql备份某个库:
mysqldump -h10.*.*.9 -P3306 -uroot -p"密码" --single-transaction --master-data=2 --set-gtid-purged=OFF --database -B db_mystorage db_myblogs db_myOA > mysqldump_db_mystorage_db_myblogs_db_myOA_`date +%Y%m%d-%H%M`.sql
  1. mysql备份所有的库
#mysql备份所有的库格式:
mysqldump -h主机名 -P端口 -u用户名 -p"密码" --all-databases > 文件名.sql

#实例:mysql备份所有的库:
mysqldump -h10.*.*.9 -P3306 -uroot -p"密码" --single-transaction --master-data=2 --set-gtid-purged=OFF --all-databases > mysqldump_all_databases_`date +%Y%m%d-%H%M`.sql

注意:如上命令 -A 或者 --all-databases 是备份wps用户拥有的全部数据库。

  1. mysql备份特定表
#mysql备份某个库格式:
mysqldump -h主机名 -P端口 -u用户名 -p"密码" 数据库名 表名 > 文件名.sql

#实例:备份db_plus_core库中的tb_doc_permission表
mysqldump -h10.*.*.9 -P3306 -uroot -p"密码" --single-transaction --master-data=2 --set-gtid-purged=OFF db_plus_core tb_doc_permission > mysqldump_tb_doc_permission_`date +%Y%m%d-%H%M`.sql
  1. mysql备份特定多个表
#mysql备份某个库格式:
mysqldump -h主机名 -P端口 -u用户名 -p"密码" 数据库名 表名1 表名2 > 文件名.sql

#实例:备份db_plus_core库中的tb_doc_permission表
mysqldump -h10.*.*.9 -P3306 -uroot -p"密码" --single-transaction --master-data=2 --set-gtid-purged=OFF db_plus_core tb_1 tb_2 > mysqldump_tb_1_tb_2_`date +%Y%m%d-%H%M`.sql

备份命令的 -B 参数

执行备份语句的时候,其中可以加上很多的参数,用来添加一些备份的时候的特殊要求的,其中有一个-B参数。执行备份语句时,如果加上了-B参数,那么将来再执行数据还原的时候,就不需要自己到数据库里面去先创建一个目标库了,并且执行数据还原语句的时候也不需要指定目标库了。如果没有加-B参数,就需要自行到数据库中先创建一个目标库,并且执行恢复语句时要指定将数据恢复到目标库。

原因是-B参数导出的文件中自带创建数据库和连接数据库的功能:(使用-B参数备份出来的内容自带create database 库名和use 库名的功能)。

备份命令的 | gzip 管道符

【压缩备份】:实际生产上导出的数据有可能比较大,不好备份到远程,这时候就需要进行压缩。
mysql压缩备份:

#mysql压缩备份格式:
mysqldump -h主机名 -P端口 -u用户名 -p"密码" --database 数据库名 | gzip > 文件名.sql.gz

#实例一:mysql压缩备份
mysqldump -h10.*.*.9 -P3306 -uroot -p"密码" --single-transaction --master-data=2 --set-gtid-purged=OFF --database db_plus_core | gzip > mysqldump_db_plus_core_`date +%Y%m%d-%H%M`.sql.gz

#实例二:mysql压缩备份全部数据库:
mysqldump -h10.*.*.9 -P3306 -uroot -p"密码" --single-transaction --master-data=2 --all-databases | gzip > mysqldump_alldatabases_`%Y%m%d-%H%M`.sql.gz

#实例三:如果mysql开了GTID模式就要用这个命令
mysqldump -h10.*.*.9 -P3306 -uroot -p"密码" --single-transaction --master-data=2 --set-gtid-purged=OFF --all-databases | gzip > mysqldump_alldatabases_`%Y%m%d-%H%M`.sql.gz

mysql备份数据带出删除数据库或者表的sql备份

备份时,可以带出删除库的参数--add-drop-database,带出删除表的参数--add-drop-table

#格式:
mysqldump -h主机名 -P端口 -u用户名 -p"密码" --add-drop-table --add-drop-database 数据库名 > 文件名.sql
#示例:
mysqldump -h10.*.*.9 -P3306 -uroot -p"密码" --add-drop-table --add-drop-database cmdb > /data/backup/mysqldump_cmdb_`%Y%m%d-%H%M`.sql

仅备份数据库结构,不包含数据

有时候我们仅仅只想备份出环境,数据库/表/字段结构,可以加命令参数--no-data

#格式:
mysqldump -h主机名 -P端口 -u用户名 -p"密码" --no-data 数据库名1 数据库名2 > 文件名.sql
#示例:
mysqldump -h10.*.*.9 -P3306 -uroot -p"密码" --no-data db1 db2 > /data/backup/mysqldump_no_data_db1_db2_`%Y%m%d-%H%M`.sql

mysqldump恢复数据备份

#格式:
mysqldump -h主机名 -P端口 -u用户名 -p"密码" --no-data 数据库名1 数据库名2 > 文件名.sql

#示例:还原db_plus_core库中的tb_doc_permission表的备份
mysqldump -uroot -p"密码" db_plus_core < mysqldump_20180114_tb_doc_permission.sql

#示例:还原所有的库(保底操作,按需执行)
mysqldump -uroot -p"密码" < mysqldump_20240114_all_databases.sql

通过mysql默认的终端执行恢复命令

【通过source命令恢复数据库】
进入mysql数据库控制台,mysql -uroot -p3306登陆后
    mysql>use 数据库;
    然后使用source命令,后面参数为脚本文件(如这里用到的是.sql文件,如果你备份的是.txt文件,那这里写.txt文件)

    mysql>source crm2.sql #这个文件是系统路径下的,默认是登陆mysql前的系统路径,在mysql中查看系统路径的方法是通过system+系统命令来搞的
    mysql>system ls

【利用mysql命名恢复(标准)】
如下:
mysql -root -p3306 -e "use crm2;drop table student;show tables;" 必须是双引号
mysql -uroot -p3306 crm2<f:\数据库备份练习\crm2.sql
mysql -uroot -p3306 -e "use crm2;show tables;"
注:如果sql文件里面没有use db这样的字样时,在导入时就要指定数据库名了。
mysql -uroot -p3306 crm2<.sql文件
建议备份数据库时都指定上-B参数,效果好
说明:mysql不光可以恢复mysqldump的备份,只要文件中是sql语句,都可以通过mysql命令执行到数据库中
mysql 带 -e 参数实现非交互式对话,就是不需要到mysql里面去,在外面执行里面的指令的方法,例如:mysql -uroot -p3306 -e "use crm2;show tables;",但是语句必须是双引号包裹。
详情参考链接:https://www.cnblogs.com/yanghongtao/p/10897282.html



Mysql备份表及部分数据

有时候我们只需要备份某个表里面的部分数据,快速恢复关键业务。
【原理】:使用 like 命令快速复制一个表(结构一模一样),将要备份的部分数据查询出来备份到新表里面,使用完了以后再恢复回去。

#示例:
mysql -h10.*.*.9 -P3306 -uroot -p"密码"
use db_mystorage;
#step1:拷贝一份新的表结构
create table tb_staff_bak like tb_staff;
#step2:将要备份的部分数据查询出来备份到新表里面
insert into tb_staff_bk select * from tb_staff where name in ('xiong','zhang');
#step3:清理目标数据
delete from tb_staff where name in ('xiong','zhang');

#回滚与恢复:
insert into tb_staff select * from tb_staff_bk;

drop table tb_staff_bk;

【完】

标签:--,备份,MySQL,mysqldump,sql,mysql,数据库,还原
From: https://www.cnblogs.com/xiongzaiqiren/p/17965612/mysqldump

相关文章

  • 定时备份与定时通知
    定时备份与定时通知背景:SQLserver代理每天通过维护计划自动备份数据库到文件A中(.bak文件),为了避免文件A所在的服务器有异变发生,需要将文件A备份到其他服务器(同一个局域网)中。工具:1、FreeFileSync(自动同步文件)2、钉钉机器人3、python写脚本发送备份成功与否的消息到钉钉的......
  • mysql 目录迁移注意事项
    修改vi/etc/my.cnfdatadir=/home/data/mysqlsocket=/home/data/mysql/mysql.socklog-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid 1、权限问题Jobformysqld.servicefailedbecausethecontrolprocessexitedwitherrorcode.See"systemct......
  • DM8备份和还原以及实时主备搭建
    一、备份和还原1.1联机备份数据库处于运行状态、并正常提供数据库服务情况下进行的备份操作,我们称为联机备份。数据库处于关闭状态时进行的备份操作,被称为脱机备份。一般生产环境下多数会选择联机备份,即在数据库运行的情况下进行数据库的备份。另备份还可以区分为库备份、表空......
  • 网络-华为、思科交换机配置TFTP自动备份、NTP时间同步、SYSLOG日志同步
    配置使用TFTP进行交换机配置的自动保存华为设备<Huawei-sw>sys[Huawei-sw]setsave-configurationinterval60delay3cpu-limit60[Huawei-sw]setsave-configurationbackup-to-serverserver<TFTP服务器IP>transport-typetftppath\Huawei-sw.zip[Huawei-sw]quit<H......
  • docker mysql8使用SSL及使用openssl生成自定义证书
    修改my.cnfvi/docker_data/mysql/conf/my.cnf[client]default-character-set=utf8mb4[mysql]default-character-set=utf8mb4[mysqld]character-set-server=utf8mb4default_authentication_plugin=mysql_native_password#增加sslssl保存,重启mysql容器dockerrestartmysql-8.0.23......
  • kettle从入门到精通 第三十课 mysql 数据连接常用配置
    1、我们平常用的最多的数据库就是mysql了,这里我以mysql为例说下数据库连接池配置。为啥要用连接池,因为数据库建立连接很费性能,所以就建立连接池(提前建立好一批连接)缓存起来提高性能。下图中mysql的设置参数,提前是需要把mysql的jar(如mysql-connector-java-8.0.20.jar)放到kettle文......
  • Dithered golden interleaver 黄金分割伪随机交织器 代码备份
    目录公式来源DitheredgoldeninterleaverTheMatrix-DitheredGoldenInterleavingAlgorithm有错误欢迎指正公式来源DesignofaModifiedInterleavingAlgorithmBasedonGoldenSectionTheoryEnhancingthePerformanceofTurboCodesDitheredgoldeninterleaver(*......
  • Mysql中设置只允许指定ip能连接访问(可视化工具的方式)
    场景Mysql中怎样设置指定ip远程访问连接:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/115308120前面设置root账户指定ip能连接访问是通过命令行的方式,如果通过可视化工具比如Navicat来实现。注:博客:https://blog.csdn.net/badao_liumang_qizhi实现1、使用N......
  • mysql备份方案
    1.为什么要备份运维是干什么的?保护服务器数据安全维护公司运维资产7*24小时运转企业真实案件:https://www.leiphone.com/category/sponsor/Isb7Smi17CHBTxVF.html企业丢了数据,就等于失去了商机、客户、产品、甚至倒闭。在各式各样的数据中,数据库的数据更是核心之核心,当......
  • mysql备份实战
    1.备份恢复演练(mysqldump+binlog)知识储备如下内容。。全量备份全量数据,指的是某一整个数据库(如kings)中所有的表、以及表数据,进行备份。例如备份所有数据库、以及所有数据,上面也讲了mysqldump的全量备份操作。备份所有库mysqldump-uroot-pwww.yuchaoit.cn-S/data/330......