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

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