14
Mysql数据安全备份
source link: http://www.cnblogs.com/chenyanbin/p/14020293.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
数据安全备份的意义
- 在出现意外的时候(硬盘损坏、断点、黑客攻击),以便数据的恢复
- 导出生产的数据以便研发人员或者测试人员测试学习
- 高权限的人员那操作失误导致数据丢失,以便恢复
备份类型
- 完全备份:对整个数据库的备份
- 部分备份:对数据进行部分备份(一张或多张表)
- 增量备份:是以上一次备份为基础来备份变更数据
- 差异备份:是以第一次完全备份为基础来备份变更数据
备份方式
- 逻辑备份:直接生成sql语句,在恢复数据的时候执行sql语句
- 物理备份:复制相关库文件,进行数据备份( my.cnf指向的数据存放目录 )
区别
- 逻辑备份效率低,恢复数据效率低,节约空间
- 物理备份浪费空间,备份数据效率快
备份场景
- 热备份:备份时,不影响数据库的读写操作
- 温备份:备份时,可以读,不能写
- 冷备份:备份时,关闭mysql服务,不能进行任何读写操作
Mysqldump备份(跨机器)
单库语法
备份基础语法: mysqldump -u用户 -hip -p密码 数据库名 表名 | 压缩方式 > 绝对路径+文件名
跨机器备份
跨机器备份: 备份描述:mac本上安装了mysql数据库(172.20.10.2),使用自搭Linux(172.20.10.4)机器上的mysql备份mac本上的nba库,并使用压缩文件方式,备份至:/mysql_data_back下 来到linux的mysql安装目录(172.20.10.4): 创建目录:mkdir /mysql_data_back 切换:cd /usr/local/mysql/bin 备份:./mysqldump -uroot -proot -h172.20.10.2 nba | gzip > /mysql_data_back/nba.sql.gz
本机备份
本机备份: 备份描述:linux(自搭),备份本就上的db1库,并使用压缩方式,备份至:/mysql_data_back下 备份:./mysqldump -uroot -proot db1 | gzip > /mysql_data_back/db1.sql.gz
备份库中的某张表
语法:./mysqldump -uroot -proot -h172.20.10.2 nba | gzip > /mysql_data_back/nba.sql.gz 备份描述:在Linux(自搭,172.20.10.4)上,远程备份mac本(172.20.10.2)nba(库)的nba_player(表) 在原来的基础上,nba(库名) 在追加表名即可 ./mysqldump -uroot -proot -h172.20.10.2 nba nba_player | gzip > /mysql_data_back/nba-nba_player.sql.gz
备份多库
语法:./mysqldump -u用户 -p密码 --databases 库1 库2 | gzip > 绝对路径+文件名 备份描述:备份本机的:db1、db2两个库 备份:./mysqldump -uroot -proot --databases db1 db2 | gzip > /mysql_data_back/db1-db2.sql.gz
注意
只备份表结构,数据没备份!
备份全库
描述:如果远程服务器上数据库较多的话,可以使用全库备份
语法: ./mysqldump -uroot -proot -all --databases | gzip > /mysql_data_back/all.sql.gz
Mysql数据的恢复
备份的数据,不加--databases是没有创建库语句的!
先备份数据: ./mysqldump -uroot -proot --databases db1 | gzip > /mysql_data_back/db1.sql.gz 删除库: drop database db1; 还原数据: 2、解压gz文件:gunzip -d db1.sql.gz 1、登录数据库:mysql -uroot -proot -h 127.0.0.1 < /mysql_data_back/db1.sql
也可以指定数据库后,在恢复数据
语法: mysql -u用户 -p密码 -h ip地址 数据库 < 绝对路径+文件名 示例:mysql -uroot -proot -h 127.0.0.1 issdb_1 < /mysql_data_back/issdb_1.sql
查看Mysql数据库源文件
方式一
登录mysql:mysql -uroot -proot 查看:show variables like 'datadir%'; =========================== mysql> show variables like 'datadir%'; +---------------+------------------------+ | Variable_name | Value | +---------------+------------------------+ | datadir | /usr/local/mysql/data/ | +---------------+------------------------+ 1 row in set (0.01 sec)
方式二
直接查看my.cnf文件即可
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK