mysqldump -u 用户名 -p 数据库名> 备份的文件名

本文中因服务器为多实例,所以在执行登陆等命令时指定了-S参数,即指定其中一个数据库

备份:

mysqldump -u root -p'root' oldboy>/opt/oldboy.sql

[root@MySQL opt]# mysql -S /data/3307/mysql.sock -uroot -p -e "show variables like '%character%'"
Enter password:
+--------------------------+--------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql-5.7.9-linux-glibc2.5-x86_64/share/charsets/ |
+--------------------------+--------------------------------------------------------------+

指定字符集备份:

[root@MySQL opt]# mysqldump -u root -p'root' --default-character-set=utf8 oldboy>/opt/oldboy.sql

备份参数:

-e : 后面可以执行mysql 命令用;分开
-B :参数的作用是增加创建数据库和连接数据库的命令,即create database,use database
-d : 备份表结构
-t : 备份数据
-A :all databases
-F : 刷新binlog日志文件,切割binlog
-x,--lock-all-tables 锁表
-l,--lock-tables 只读锁表
--master-data=1(=2) : 增加binlog日志文件名及对应的位置点
--compact :去掉注释,适用于debug,生产不用
--single-transaction : 适合innodb事务数据库备份
InnoDB表在备份时,通常启用选项 --single-transaction来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:REPEATABLE READ,以确保本次会话(dump)时,不会看到其他会话已经提交了的数据。 库名|gzip:压缩备份(mysql数据都是文本,压缩效率高)

myisam备份时,将锁整个表,导致表无法进行访问

还原数据库:

[root@MySQL opt]# mysql -uroot -p'root' oldboy</opt/oldboy_bak.sql

查看备份内容:

[root@MySQL opt]# egrep -v "#|\*|--|^$" /opt/oldboy.sql

查看字符集:

[root@MySQL opt]# mysql -uroot -p'root' -e "show variables like '%character%'"

myqsl多库备份:

[root@MySQL opt]# mysqldump -uroot -p'root' -B (库名)oldboy (库名)ClasssInfo (库名)oldboy_gbk|gzip >/opt/mysql_bak.sql.gz

mysql分库备份:
每个库一个备份文件

mysql -uroot -p'root' -e "show databases;"|grep -Evi "database|info|perfor"|sed -r 's#^([a-z].*$)#mysqldump -uroot -p'root' --events -B \1|gzip >/opt/\1.sql.gz#g'|bash

mysql -S /data/3307/mysql.sock -uroot -p'root' -e "show databases;"|grep -Evi "database|info|perfor"|sed -r 's#^([a-z].*$)#mysqldump -uroot -p'root' -S /data/3307/mysql.sock --events -B \1|gzip >/opt/bak/\1.sql.gz#g'|bash

shell脚本:

for dbname in 'mysql -uroot -p'root' -e "show databases;"|grep -Evi "database|info|perfor"'
do
mysqldump -uroot -p'root' -S /data//mysql.sock --events -B $dbname|gzip >/opt/bak/${dbname}_bak.sql.gz
done

备份单个表和多表:
语法:mysqldump -u 用户名 -p 数据库名 表名 表名 表名>备份的文件名

mysqldump -u root -p ClassInfo score>/opt/table1.sql

分库分表备份:
shell脚本:

#!/bin/bash
USER=root
PASSWD=root
SOCK=/data//mysql.sock
LOGIN="mysql -u$USER -p$PASSWD -S $SOCK"
DATABASES=`$LOGIN -e "show databases;"|sed "1d"|egrep -v "^.*sch|mysql"`
dump="mysqldump -u$USER -p$PASSWD -S $SOCK"
for database in $DATABASES
do
[ ! -d /back/$database ] && mkdir -p /back/$database
TABLE=`$LOGIN -e "show tables from $database;"|sed '1d'`
for table in $TABLE
do
$dump $database $TABLE|gzip >/back/$database/${database}_${table}_$(date +%F).sql.gz
done

只备份表结构和只备份数据:

参数-d 备份表结构
参数-t 备份数据

实例:

[root@MySQL bak]# mysqldump -uroot -p'root' -S /data//mysql.sock --compact -d abbott t2
mysqldump: [Warning] Using a password on the command line interface can be insecure.
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t2` (
`id` int() DEFAULT NULL,
`name` varchar() DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */; [root@MySQL bak]# mysqldump -uroot -p'root' -S /data//mysql.sock --compact -t abbott t2
mysqldump: [Warning] Using a password on the command line interface can be insecure.
INSERT INTO `t2` VALUES (,'abbott'),(,'zx'),(,'bb');

备份全部数据库:

mysqldump -u root -p'root' -A -B --events|gzip >/opt/all.sql.gz

myisam与innodb备份的区别:

myisam推荐:
mysqldump -uroot -p'root' -A -B --master-data= -x|gzip >/opt/all.sql.gz mysqldump -uroot -p'root' -A -B --all-databases --flush-privileges --lock-all-tables --master-data= --flush-logs --triqqers --routines --events --hex-blob|gzip > $BACKUP_DIR/full_dump_$BACKUP_TIMESTAMP.sql.gz innodb推荐:
mysqldump -uroot -p'root' -A -B --master-data= --singe-transaction|gzip >/opt/all.sql.gz mysqldump -uroot -p'root' --all-databases --flush-privileges --master-data= --singe-transaction --flush-logs --triqqers --routines --events --hex-blob|gzip >$BACKUP_DIR/full_dump_$BACKUP_TIMESTAMP.sql.gz

混合引擎,建议使用myisam的备份方式

恢复数据库实战:

利用source命令恢复数据库
进入mysql数据库控制台,mysql -u root -p 登录后
mysql>use 数据库名

然后使用命令source 命令,后面参数为脚本文件,可以利用system ls 查看文件路径

mysql>source /opt/all.sql.gz

批量恢复脚本实例:

#!/bin/bash
gzip -d /opt/*.gz for dbname in `ls *.sql|sed 's#_bak.sql##g'`;
do
mysql -u root -p'root' <${dbname}_bak.sql;
done

=========================================================================================
mysql--show命令总结:

show status; 查看当前会话的数据库状态信息
show global status; 查看整个数据库运行状态信息,很重要,要分析并做好监控
show full processlist; 查看正在执行的完整的sql语句
show variables; 查看数据库参数信息 [root@MySQL ~]# mysql -S /data//mysql.sock -uroot -proot -e "show full processlist;"
+----+------+-----------+--------+---------+------+----------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+--------+---------+------+----------+-----------------------+
| | root | localhost | abbott | Sleep | | | NULL |
| | root | localhost | NULL | Query | | starting | show full processlist |
+----+------+-----------+--------+---------+------+----------+-----------------------+

mysql线程中大海捞针

[root@MySQL ~]# mysql -S /data//mysql.sock -uroot -proot -e "show full processlist;"|grep -v Sleep

参数修改先在my.cnf中修改,然后再在数据库中修改,不在my.cnf中修改,重启后失效:

mysql> set global key_buffer_size=**;
Query OK, rows affected (0.00 sec) mysql> show variables like 'key_buffer%';
+-----------------+----------+
| Variable_name | Value |
+-----------------+----------+
| key_buffer_size | |
+-----------------+----------+
row in set (0.00 sec)

---------------------------------------------
mysqlbinlog ->解析mysql的binlog日志
用来记录mysql内部增删改查等对mysql数据库有更新的内容记录。

mysqlbinlog参数:
-d 截取指定库的binlog
按照位置截取:

mysqlbinlog mysqlbin. --start-position= --stop-position= -r /opt/pos.sql

按照时间截取:

mysqlbinlog mysql-bin. --start-datetime='2017-06-26 20:16:30' --stop-datetime='2017-06-26 20:20:10' -r time.sql

mysqldump数据库备份与恢复的更多相关文章

  1. 小贝_mysql数据库备份与恢复

    mysql数据库备份与恢复 简要:        一.数据库备份        二.数据库恢复 一.数据库备份 1.备份简单说明 : 系统执行中,增量备份与总体备份 例: 每周日总体备份一次,周一到周 ...

  2. 2020重新出发,MySql基础,MySql数据库备份与恢复

    @ 目录 MySQL数据库备份与恢复 数据库为什么需要备份 MySQL备份类型 MySQL热备份及恢复 逻辑备份 mysqldump SELECT INTO-OUTFILE mydumper 裸文件备 ...

  3. PHP数据库备份与恢复

    先说下关于数据库备份与恢复的原理: 1.查找所有表->2.查找所有字段->3.查找所有数据->4.生成SQL 备份注意点: 2=>需要列出所有字段名,字段类型等相关信息 3=& ...

  4. Oracle数据库备份与恢复的三种方法

    转自blueskys567原文Oracle数据库备份与恢复的三种方法, 2006-10. 有删改 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP).热备份和冷备份. 导出 ...

  5. C#实现SQL数据库备份与恢复

    有两种方法,都是保存为.bak文件.一种是直接用Sql语句执行,另一种是通过引用SQL Server的SQLDMO组件来实现:  1.通过执行Sql语句来实现 注意,用Sql语句实现备份与还原操作时, ...

  6. Oracle 10g数据库备份与恢复操作手册

    Oracle 10g数据库备份与恢复操作手册 目录 Oracle 10g数据库备份与恢复操作手册... 前言... 文档目的... 文档范围... 目标读者... 其他说明... 冷备份... 热备份 ...

  7. SQL Server 2000数据库备份与恢复图解

    SQL Server 2000数据库备份与恢复图解   四个步骤:1.安装sql server 2000 2.数据库设置: 3.建立自动备份 4.还原数据库  具体图片见附件 本文出自 "李 ...

  8. ORACLE数据库备份与恢复详解

    ORACLE数据库备份与恢复详解 学习过程中的总结,有兴趣不妨看看,如果有不对的地方,高手不要留情!! Oracle的备份与恢复有三种标准的模式,大致分为两 大类,备份恢复(物理上的)以及导入导出(逻 ...

  9. oracle 数据库备份与恢复

    oracle 数据库备份与恢复 包含四个部分: 1.数据泵备份与恢复 2.rman备份与恢复 3.CSV增量备份恢复 4.截库操作 1.数据泵备份与恢复 expdp/ / impdp 时的 CONTE ...

随机推荐

  1. Windows下的bat中文乱码问题

    起初拿到一个bat文件,我在修改时看到编码是gb2312,我就直接将其转变为了utf8...但是在执行后的黑窗口出现中文乱码问题,最后网上获取帮助是修改编码为ANSI编码,确实不出现乱码了,ANSI是 ...

  2. X Window 简单的新手教程

    1.X Window 系统的窗体显示原理: http://www.ibm.com/developerworks/cn/linux/l-cn-xwin/ 2.X Window 程式设计入门--第二章 X ...

  3. iOS常用加密方法(aes、md5、base64)

    1.代码 iOS常用加密方法(aes.md5.base64) .AES加密 NSData+AES.h文件 // // NSData-AES.h // Smile // // Created by 周 ...

  4. CentOS 挂载iso文件配置yum源

    1.挂载iso 准备好centos的光盘镜像 挂载前的准备; mkdir -p /dev/centos mkdir -p  /mnt/local_yum 挂载 mount -o loop /opt/s ...

  5. 【19.00%】【vijos p1906】联合权值

    描述 无向连通图 G 有 n 个点,n-1 条边.点从 1 到 n 依次编号,编号为 i 的点的权值为 WiWi, 每条边的长度均为 1.图上两点(u, v)的距离定义为 u 点到 v 点的最短距离. ...

  6. iOS 使用贝塞尔曲线绘制路径

    使用贝塞尔曲线绘制路径 大多数时候,我们在开发中使用的控件的边框是矩形,或者做一点圆角,是使得矩形的角看起来更加的圆滑. 但是如果我们想要一个不规则的图形怎么办?有人说,叫UI妹子做,不仅省事,还可以 ...

  7. tomcat启动时自动加载一个类 MyServletContextListener

    目的: 我们知道在tomcat启动后,需要页面请求进行驱动来执行操作接而响应.我们希望在tomcat启动的时候能够自动运行一个后台线程,以处理我们需要的一些操作.因此需要tomcat启动时就自动加载一 ...

  8. PAT 1031-1040 题解

    早期部分代码用 Java 实现.由于 PAT 虽然支持各种语言,但只有 C/C++标程来限定时间,许多题目用 Java 读入数据就已经超时,后来转投 C/C++.浏览全部代码:请戳 本文谨代表个人思路 ...

  9. 创Python规划2

    于Milang的IDE多年的编辑后,,然后按F5关于实施.这将是在下面Output输出形式"Hello, World!"弦,例如下面的附图: watermark/2/text/aH ...

  10. Qt、Qte与Qtopia(Qt嵌入式的发展历程)

    Qt的授权是分为两条线,商业版和开源版.如果使用商业版的Qt,那么开发出的程序可以是私有的和商业的:如果使用的是开源版的Qt,由于其使用的是GPL协议,那么可发出的程序也必须是GPL的.不过自从qt ...