MySQL逻辑备份单表恢复

假设要从一个MySQL整库的逻辑备份中恢复其中的一张表,如何做到快速恢复呢?

下面通过巧妙利用授权的方式,快速从逻辑备份中恢复想要的表。

一. 数据库备份
mysqldump -ubackup -ppassword -S /data/3316/logs/mysql.sock -B --flush-privileges --single-transaction --master-data=2 --triggers -f -R -E --hex-blob --databases employees sakila |gzip >>`date +%F`.sql.gz

gunzip -c 2018-01-09.sql.gz >recover.sql

二、数据恢复

1.创建备份用户

CREATE USER 'restor_user'@'localhost' IDENTIFIED BY 'its_password';

2.赋予用户select所有数据库和表的权限.

GRANT SELECT ON *.* TO 'restor_user'@'localhost';

3.赋予恢复用户对要恢复表ALL的权限

GRANT ALL ON employees.departments TO 'restor_user'@'localhost';

4.恢复单表数据

mysql -uroot -p123456 -S /data/3306/logs/mysql.sock -e "CREATE DATABASE IF NOT EXISTS employees;" 
mysql -urestor_user -pits_password -S /data/3316/logs/mysql.sock --force < /home/mysql/recover.sql

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章