mysql命令行备份方法
一、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命令行备份方法的更多相关文章
- Mysql命令行备份与还原数据库操作实例
无论是Windows还是Linux,都可以通过如下命令行形式备份Mysql数据库 备份命令: 在windows的DOS窗口命令行或linux的shell命令行,假设需要备份的数据库是advanced: ...
- mysql命令行备份数据库
MySQL数据库使用命令行备份|MySQL数据库备份命令 例如: 数据库地址:127.0.0.1 数据库用户名:root 数据库密码:pass 数据库名称:myweb 备份数据库到D盘跟目录 mysq ...
- 使用MySQL命令行备份和恢复数据库
导出数据库: 1.windows下cmd打开命令行 2.cd 到MySQL的安装目录的bin 目录,如果bin目录添加到环境变量中不需要切换到bin目录 3.导出数据库:mysqldump -u 用户 ...
- mysql 命令行 备份 恢复数据
找到mysql启动位置 whereis mysql 备份指定数据库 包括表结构和数据 使用命令mysqldump 数据库名 -u 用户名 -p > 存储文件路径 [root@izm5e16gjd ...
- mysql命令行以及mysql workbence查询结果中文乱码的解决方法
最近正在学习mysql,安装环境是windows server 2003 32位操作系统+mysql 5.1.47同时也安装了mysql命令行以及mysql workbench这里是test数据库cr ...
- Mysql命令行中文乱码的解决方法
环境:Windows 8 64位,Mysql 5.0.96 for Win64 (x86) 数据库本身安装时默认已经是使用utf8编码的了,但在命令行中执行查询时,查询到的中文依然乱码,解决方法如下 ...
- Mysql命令行tab自动补全方法
在mysql命令行有时为了方便想要按tbl键自动补全命令,以便节约时间. 具体方法如下: 第一步:修改my.cnf vi mysql/etc/my.cnf 将下图红框的代码注释,修改成如下代码: #d ...
- 第二百九十节,MySQL数据库-MySQL命令行导出导入数据库,数据库备份还原
MySQL命令行导出导入数据库,数据库备份还原 MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program ...
- MYSQL 命令行工具自动登录的方法
MYSQL 命令行工具自动登录的方法 1. 需求提出 由于在linux 环境下,经常需要使用mysql(command-line tool) 终端连接到MYSQL DB服务. 其中大致的语法如下: m ...
随机推荐
- vue 图片滑动登录
前言 最近在研究图片滑动解锁 登录,说是要用阿里的那个验证,但是还是想自己手写下这个Demo 效果图是这样的: 本来是想用canvas 来实现的,但是类,后来还想用css 和图片来代替canvas 其 ...
- Juit4 SpringBoot注解
@RunWith就是一个运行器 @RunWith(JUnit4.class)就是指用JUnit4来运行 @RunWith(SpringJUnit4ClassRunner.class),让测试运行于Sp ...
- 2017"百度之星"程序设计大赛 - 初赛(A) [ hdu 6108 小C的倍数问题 ] [ hdu 6109 数据分割 ] [ hdu 6110 路径交 ] [ hdu 6112 今夕何夕 ] [ hdu 6113 度度熊的01世界 ]
这套题体验极差. PROBLEM 1001 - 小C的倍数问题 题 OvO http://acm.hdu.edu.cn/showproblem.php?pid=6108 (2017"百度之星 ...
- 【winfrom-Button】设置带图标样式的Button
this.myButton.BackColor = System.Drawing.SystemColors.Control; this.myButton.FlatAppearance.BorderCo ...
- selenium 与appium的关系
selenium是web端的自动化,appium是app端的自动化,它继承了webdriver(也就是selenium 2) 关系如下:
- 138企业邮箱pop/imap和smtp服务器地址
如果客户端设置的是pop模式:接收邮件服务器(pop):pop.138mail.net ,端口号是110 (如果勾选了SSL,端口号则变为995)发送邮件服务器(smtp):smtp.138mail. ...
- ssh以及双机互信
当我们要远程到其他主机上面时就需要使用ssh服务了. 我们就来安装一下sshd服务以及ssh命令的使用方法. 服务安装: 需要安装OpenSSH 四个安装包: 安装包: openssh-5.3p1-1 ...
- Centos-Redhat下远程桌面的方法 & Redhat改Centos源
折腾了好几天才搞定,Redhat下远程桌面的方法,首先保证本身已经装了桌面,并且可以ssh访问 由于系统中自带python2环境,装了anaconda以及它带的python3环境,这个必须存在(前提) ...
- 开启两个线程,一个线程打印A~Z,一个线程打印1~52的数据
开启两个线程,一个线程打印A-Z,一个线程打印1-52的数据 import java.util.concurrent.locks.Condition; import java.util.concurr ...
- LeetCode 179. 最大数(Largest Number)
题目描述 给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说明: ...