一、mysql备份

1、备份命令

格式:mysqldump -h主机IP -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql

# 本地备份可以不添加端口和主机IP,username、passward是数据库用户名和密码
mysqldump -h *.*.*.* -p 3306 -u username -p password --database mysql > /data/backup/mysql.sql

2、备份压缩

格式:mysqldump -h主机IP -P端口 -u用户名 -p密码 --database 数据库名 | gzip > 文件名.sql.gz

# 导出的数据有可能比较大,不好备份到远程,这时候就需要进行压缩
mysqldump -h *.*.*.* -p -u username -p password --database mysql | gzip > /data/backup/mysql.sql.gz

3、备份同个库多个表

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

mysqldump -h *.*.*.* -p  -u username -p password mysql1 mysql2 mysql3> /data/backup/mysql_db.sql

4、同时备份多个库

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

mysqldump -h *.*.*.* -p  -u username -p password --databases mysql1 mysql2 mysql3 > /data/backup/mysql_db.sql

5、备份实例上所有的数据库

格式:mysqldump -h主机IP -P端口 -u用户名 -p密码 --all-databases > 文件名.sql

mysqldump -h *.*.*.* -p  -u username -p password --all-databases > /data/backup/mysql_db.sql

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

格式:mysqldump -h主机IP -P端口 -u用户名 -p密码 --add-drop-table --add-drop-database 数据库名 > 文件名.sql

mysqldump -h *.*.*.* -p 3306 -u username -p password --add-drop-table --add-drop-database mysql > /data/backup/mysql_db.sql

7、备份数据库结构,不备份数据

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

mysqldump -h *.*.*.* -p  -u username -p password --no-data –databases mysql1 mysql2 mysql3 > /data/backup/structure_db.sql

8、还原MySQL数据库的命令

# database为数据库名
mysql -h *.*.*.* -u username -p password database < backupfile.sql

9、还原压缩的MySQL数据库

# database为数据库名
gunzip < backupfile.sql.gz | mysql -u username -p password database

10、将数据库转移到新服务器

# database为数据库名
mysqldump -u username -p password database | mysql –host=*.*.*.* -C database

11、--master-data 和--single-transaction

  在mysqldump中使用--master-data=2,会记录binlog文件和position的信息 。

  --single-transaction会将隔离级别设置成repeatable-commited。

12、导入数据库

  常用source命令,用use进入到某个数据库,mysql>source d:\test.sql,后面的参数为脚本文件。

13、查看binlog日志

  查看binlog日志可用命令 mysqlbinlog  binlog日志名称|more

14、general_log

  General_log记录数据库的任何操作,查看general_log 的状态和位置可以用命令show variables like "general_log%"  ,开启general_log可以用命令set global general_log=on

二、增量备份

1、首先做一次完整备份:

# 这时候就会得到一个全备文件test.sql
mysqldump -h *.*.*.* -u username -p passward -p --single-transaction --master-data= test>test.sql

在sql文件中我们会看到:

-- 是指备份后所有的更改将会保存到bin-log.000002二进制文件中。
CHANGE MASTER TO MASTER_LOG_FILE='bin-log.000002', MASTER_LOG_POS=107;

2、在test库的t_student表中增加两条记录,然后执行flush logs命令。

  这时将会产生一个新的二进制日志文件bin-log.000003,bin-log.000002则保存了全备过后的所有更改,既增加记录的操作也保存在了bin-log.00002中。

3、再在test库中的a表中增加两条记录,然后误删除t_student表和a表。

  a中增加记录的操作和删除表a和t_student的操作都记录在bin-log.000003中。

三、恢复

1、首先导入全备数据

# 也可以直接在mysql命令行下面用source导入
mysql -h *.*.*.* -u username -p passward -p 3310 < test.sql

2、恢复bin-log.000002

mysqlbinlog bin-log.000002 |mysql -h *.*.*.* -u username -p passward -p 3310

3、恢复部分 bin-log.000003

在general_log中找到误删除的时间点,然后更加对应的时间点到bin-log.000003中找到相应的position点,需要恢复到误删除的前面一个position点。

可以用如下参数来控制binlog的区间

--start-position 开始点 --stop-position 结束点

--start-date 开始时间  --stop-date  结束时间

找到恢复点后,既可以开始恢复。

mysqlbinlog mysql-bin.000003 --stop-position=208 |mysql -h *.*.*.* -u username -p passward -p 3310 

mysql命令行备份方法的更多相关文章

  1. Mysql命令行备份与还原数据库操作实例

    无论是Windows还是Linux,都可以通过如下命令行形式备份Mysql数据库 备份命令: 在windows的DOS窗口命令行或linux的shell命令行,假设需要备份的数据库是advanced: ...

  2. mysql命令行备份数据库

    MySQL数据库使用命令行备份|MySQL数据库备份命令 例如: 数据库地址:127.0.0.1 数据库用户名:root 数据库密码:pass 数据库名称:myweb 备份数据库到D盘跟目录 mysq ...

  3. 使用MySQL命令行备份和恢复数据库

    导出数据库: 1.windows下cmd打开命令行 2.cd 到MySQL的安装目录的bin 目录,如果bin目录添加到环境变量中不需要切换到bin目录 3.导出数据库:mysqldump -u 用户 ...

  4. mysql 命令行 备份 恢复数据

    找到mysql启动位置 whereis mysql 备份指定数据库 包括表结构和数据 使用命令mysqldump 数据库名 -u 用户名 -p > 存储文件路径 [root@izm5e16gjd ...

  5. mysql命令行以及mysql workbence查询结果中文乱码的解决方法

    最近正在学习mysql,安装环境是windows server 2003 32位操作系统+mysql 5.1.47同时也安装了mysql命令行以及mysql workbench这里是test数据库cr ...

  6. Mysql命令行中文乱码的解决方法

    环境:Windows 8 64位,Mysql  5.0.96 for Win64 (x86) 数据库本身安装时默认已经是使用utf8编码的了,但在命令行中执行查询时,查询到的中文依然乱码,解决方法如下 ...

  7. Mysql命令行tab自动补全方法

    在mysql命令行有时为了方便想要按tbl键自动补全命令,以便节约时间. 具体方法如下: 第一步:修改my.cnf vi mysql/etc/my.cnf 将下图红框的代码注释,修改成如下代码: #d ...

  8. 第二百九十节,MySQL数据库-MySQL命令行导出导入数据库,数据库备份还原

    MySQL命令行导出导入数据库,数据库备份还原 MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program ...

  9. MYSQL 命令行工具自动登录的方法

    MYSQL 命令行工具自动登录的方法 1. 需求提出 由于在linux 环境下,经常需要使用mysql(command-line tool) 终端连接到MYSQL DB服务. 其中大致的语法如下: m ...

随机推荐

  1. Hadoop-No.2之标准文件格式

    标准文件格式可以指文本格式,也可以指二进制文件类型.前者包括逗号分隔值(Comma-Separated Value,CSV和可扩展的标记语言文本(Extensible Markup Language. ...

  2. C#与数据库有关的控件和属性

    BindingNavigator  数据记录导航 BindingSource 与数据源绑定, 常用属性:DataSource.DataMember 常用方法: DataGridView 以表格形式显示 ...

  3. java中的排列组合

    使用之前需要声明一个Combine的对象,调用startCombile方法,可返回想要的组合数或者个数,参数介绍很重要 public class Combine { private Object[] ...

  4. python创建文件夹方法

    def mkdir(path): # 引入模块 import os # 去除首位空格 path = path.strip() # 去除尾部 \ 符号 path = path.rstrip(" ...

  5. 灰度图像--频域滤波 傅里叶变换之离散傅里叶变换(DFT)

    学习DIP第23天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不 ...

  6. 关于windows 设备驱动重要的事实

    1. windows采用设备树描述所有挂在系统总线上的设备,每个设备对应一个节点. 2.每个设备有自己的device object stack/driver stack. 一个物理上的设备对应多个de ...

  7. Spring——bean的五种作用域和生命周期

    一.Bean的作用域 1.当一个bean的作用域为Singleton,那么Spring IoC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回 ...

  8. JavaWeb-SpringSecurity初认识

    Spring Security 安全 百度百科 功能:Spring Security对Web安全性的支持大量地依赖于Servlet过滤器.这些过滤器拦截进入请求,并且在应用程序处理该请求之前进行某些安 ...

  9. zookeeper系列(二)zookeeper的使用--javaAPI

    作者:leesf    掌控之中,才会成功:掌控之外,注定失败: 出处:http://www.cnblogs.com/leesf456/ (尊重原创,感谢作者整理的这么好,作者的部分内容添加了我的理解 ...

  10. 线程系列4--Java线程范围内的共享数据(一)

    这张图片是我看传智播客的视频时的截屏,这个图片很直观的展示了线程范围内的数据共享.当同一个线程在执行三个不同业务模块时,这三个业务模块访问的数据是共享的.更直白的说,当一个执行线索在穿个每个业务模块时 ...