Mysql 的备份
前情了解与小试
三种级别的备份与恢复数据:
1、表级别备份:
mysqldump [OPTIONS] database [tables]
mysqldump -p密码 库名 表名 > 保存的路径
例子:
# mysqldump -p123 db01 emp > /tmp/mysqlbak/emp.sql 备份单个表
# mysqldump -p123 db01 emp dept > /tmp/mysqlbak/emp.sql 备份多个表
表级别的恢复:
终端命令行中 mysql -p 密码 要把表恢复到的库的库名 < 备份的路径
或者在mysql数据库内使用source命令来执行外部的sql文件
mysql> source 备份的路径
2、库级别的备份:mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
# mysqldump --databases 库名 -p密码 > 备份到的路径 备份单个库
# mysqldump --databases 库名1 库名2 -p密码 > 备份到的路径 备份多个库
库恢复:
# mysql -p < 备份的路径
mysql> source 备份的路径
3、全库备份:mysqldump [OPTIONS] --all-databases [OPTIONS]
考虑到数据库里有innodb,也有其他类型的表,那么就只能锁表备份
# mysqldump -p --lock-tables --all-databases > 备份到的路径
全库恢复: 注意mysqldump的恢复速度较慢,所以数据太大需要的时间较长
全库恢复步骤:
0. 杀死进程,删除socket文件
[root@db01 data]# cd ../
[root@db01 mysql]# rm -f mysql.sock
[root@db01 mysql]# pkill -9 mysqld
1. 初始化
[root@db01 mysql]# scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf
2. 把数据库先启起来
[root@db01 mysql]# service mysql start
Starting MySQL. SUCCESS!
3. 恢复
[root@db01 mysql]# mysql </backup/full.sql
4. 刷新权限表
[root@db01 data]# mysql
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 4
Server version: 5.6.35-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> show databases;