mysql备份相关

摘要:
确保my.ini或my.cnf中包含以下配置以启用二进制日志或mysqld--log-bin:[mysqld]log-bin=mysqlbin mysqldump命令必须具有--flush-logs选项才能生成新的二进制日志文件:mysqldump--singletransaction--flushlogs--master-data=2˃backup。sql--单事务:表示支持事务,但仅限于Inodb--刷新日志:刷新日志--主数据导出数据时,当此参数的值为1时,mysqldump中的文件将包含语句CHANGEMASTERTO。CHANGEMASTERTO之后是文件和位置的记录。该语句将在从设备上导入数据时执行,save将根据指定的文件位置从主设备侧复制binlog。
1linux下mysql导出文件 备份mysql数据库的命令
mysqldump -h主机名 -u用户名 -p密码 数据库名字 > 备份的数据库名字.sql
例如:mysqldump  -uroot -p1234 springboot   >/tmp/springboot.sql

仅仅备份数据库结构(不带表数据)
mysqldump --no-data -h主机名 -u用户名 -p密码  数据库名字 > 备份数据库名字.sql

直接将mysql数据库压缩备份
mysqldump -h主机名 -u用户名 -p密码 数据库名字  | gzip >备份的数据库名字.sql.gz

只备份某些表
mysqldump -h主机名 -u用户名 -p密码 数据库名字 数据库表名1 数据库其他表名2 > 备份数据库名字.sql

同时备份多个mysql数据库
mysqldump -h主机名 -u用户名 -p密码 --databases 需要备份的数据库名字1 需要备份的数据库名字2  > 备份数据库名字.sql

备份服务器上所有数据库
mysqldump --all-databases -h主机名 -u用户名 -p密码 > 备份数据库名字.sql

跨主机备份
mysqldump备份 -u账号 -p密码 需要恢复的数据库名字 | mysql还原 -u账号 -p密码 --host=192.168.199.100 -C 需要恢复的数据库名字
mysqldump -uroot -p1234 springboot |mysql -uroot -proot --host=192.168.196.133 -C springboot  #将当前环境的springboot库备份到133机器上

mysqldump全量备份+mysqlbinlog二进制日志增量备份
从mysqldump备份文件恢复数据会丢失掉从备份点开始的更新数据,所以还需要结合mysqlbinlog二进制日志增量备份。确保my.ini或者my.cnf中包含下面的配置以启用二进制日志,或者mysqld ---log-bin
[mysqld]
log-bin=mysql-bin

 mysqldump命令必须带上--flush-logs选项以生成新的二进制日志文件:

mysqldump --single-transaction --flush-logs --master-data=2 > backup.sql

--single-transaction  :表示支持事务,但是只针对Inodb
--flush-logs:刷新日志
-- master-data

    mysqldump导出数据时,当这个参数的值为1的时候,mysqldump出来的文件就会包括CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和position的记录,在slave上导入数据时就会执行这 个语句,salve就会根据指定这个文件位置从master端复制binlog。默认情况下这个值是1
当这个值是2的时候,chang master to也是会写到dump文件里面去的,但是这个语句是被注释的状态。

  这样生成的增量二进制日志文件比如为mysql-bin.000003,那么恢复数据时如下:

shell> mysql -uroot -pPwd < backup_sunday_1_PM.sql
shell> mysqlbinlog mysql-bin.000003 | mysql -uroot -pPwd

2linux下msyql还原文件

数据库还原方式1
 mysql -h主机名 -u用户名 -p密码 需要恢复的数据库名字  < 已备份的数据库名字(见上).sql 

例子:mysql -uroot -proot springboot < springboot.sql

注意:需要回复的数据库名字,必须保证在需要恢复的数据库主机上面有个空库或者库名。

优化方式:(由于导出的sql文件,含数据库创建语句)

 mysql -h主机名 -u用户名 -p密码 < 已备份的数据库名字(见上).sql 


数据库还原方式2
mysql -uroot -proot
mysql>source /tmp/springboot.sql
注意:生成的sql文件中有,建库语句,所以可以直接导入

还原压缩的mysql数据库
gunzip < 刚开始备份集中的数据库名字.sql.gz | mysql -u用户名字 -p用户密码 需要恢复的数据库名字


3其他

mysqldump导出时报2002 套接字错误

在执行mysqldump命令时候报如下错误:
[root@localhost ~]#  mysqldump -uroot -p -d test> test.sql   
mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect

找到正确的套接字的路径: 
[root@localhost ~]#  netstat -ln | grep mysql                                   
unix  2      [ ACC ]     STREAM     LISTENING     70442911 /MysqlData/base/mysql/mysql.sock

再运行dump命令:
[root@localhost ~]# mysqldump --sock=/MysqlData/base/mysql/mysql.sock -uroot -p -d test> test.sql   
Warning: Using unique option prefix sock instead of socket is deprecated and will be removed in a future release. Please use the full name instead.

Enter password: 

执行成功,但有警告信息,提示使用sock前辍将在后继版本中可能不再支持,请使用全名

将--sock 换成--socket将不再有问题:

[root@localhost ~]# mysqldump --socket=/MysqlData/base/mysql/mysql.sock -uroot -p -d test> test.sql   


4参考:mysqldump参数大全:







免责声明:文章转载自《mysql备份相关》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java 利用poi生成excel表格RadioButtonList控件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SQL基础之 时间戳

本文转载:http://www.cnblogs.com/liuhh/archive/2011/05/14/2046544.html 一直对时间戳这个概念比较模糊,相信有很多朋友也都会误认为:时间戳是一个时间字段,每次增加数据时,填入当前的时间值。其实这误导了很多朋友。 1.基本概念 时间戳:数据库中自动生成的唯一二进制数字,与时间和日期无关的, 通常...

mysql 禁用查询缓存 query cache

os:centos 6.8 mysql: 5.5.49 MySQL Query Cache 会缓存select 查询,但是在调优sql查询及测试数据库的性能时需要禁用该功能。 查看变量、状态 mysql> show global variables like '%cache%'; +------------------------------+--...

一个神奇SQL引发的故障【转】

前几天一个客户数据库主实例告警,诊断过程中发现是由一个慢SQL导致的数据库故障,而在排查逐步深入之后却发现这个现象的不可思议。 问题描述 2016年12日09日,大概9点26分左右,一个客户的生产库主实例发出告警,告警信息如下: MySQL实例超过五分钟没有更新。这个告警信息简单解释下就是持续五分钟无法获取该实例的信息。 同时开发人员还反映,从12月09日...

mysql如何解除死锁状态

第一种: 前提条件:找到执行非常慢的sql; 如何找呢:还原客户遇到的问题场景,从控制台找到所执行的sql,一句句的去执行,直到找到执行非常慢的sql 1.查询是否锁表 show OPEN TABLES where In_use > 0; 2.查询进程(如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程) show proces...

使用 Sonar 检测代码质量

经历了一段时间的加班赶项目进度之后,今天终于闲下来了。忽然不知道干啥。于是,想着做点什么吧。突然想起了码云上面有个代码分析的功能,用的是 Sonar 于是想来玩玩这个。 一、下载Sonar,和初始化,启动 打开浏览器,搜索sonarqube,进入官网,找到download按钮,下载安装包。浏览器下载慢的话, 可以复制下载链接 到迅雷里边下载。 下载之后,解...

php linux sphinx 安装

索引服务器搭建   所需要的软件: python:Python-2.5.tar.bz2 mmseg:mmseg-3.1.tar.tar mysql:mysql-5.0.22.tar.gz csft:csft-3.1.tar.tar libiconv:libiconv-1.13.1.tar.tar 安装Python 1.# bzip2 -d Python...