1.第一種,小表的備份
create table A as select * from B
create table A as select * from B
2.第2種,對整個數據庫的備份與恢復
2.1 對整個數據庫進行備份
1.創建備份用戶和密碼:zhangsan_backup/zs123
create user 'zhangsan_backup'@'localhost' identified by 'zs123';
2.賦予該用戶有哪些權限
grant select ,reload,lock tables,replication client,show view,event,process on *.* to 'zhangsan_backup'@'localhost';
3.備份數據
#1
mysqldump -uzhangsan_backup -p --master-data=2 --single-transaction --routines --triggers --events bonc_test > e:\\bonc_test2.sql
#2
mysqldump -uzhangsan_backup -p bonc_test > e:\\bonc_test.sql
mysql> create user 'zhangsan_backup'@'localhost' identified by 'zs123';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges;
Query OK, 0 rows affected (0.15 sec)
mysql> create user 'zhangsan_backup'@'localhost' identified by 'zs123';
Query OK, 0 rows affected (0.02 sec)
mysql> grant select ,reload,lock tables,replication client,show view,event,process on *.* to 'zhangsan_backup'@'localho
st';
Query OK, 0 rows affected (0.02 sec)
C:\Windows\system32>mysqldump -uzhangsan_backup -p --master-data=2 --single-transaction --routines --triggers --events
bonc_test > e:\\bonc_test2.sql
Enter password: *****
C:\Windows\system32>
注意如果在操作中報:mysqldump: Error: Binlogging on server not active的錯誤,則在windows中的my.ini文件中最後面新增:
#備份數據庫
log-bin=mysql-bin
server-id=1
然後重新啓動服務。即可。
2.2 對整個數據庫進行恢復
#1.先創建一個數據庫
create database bak_bonc_test;
#2.進行恢復數據
mysql -uroot -p bak_bonc_test <e:\\bonc_test2.sql
#3.查看:
3.第3種,對某個數據表進行備份
3.1 對整個數據表進行備份
庫:bonc_test 表: user_login_tb
mysqldump -uzhangsan_backup -p --master-data=2 --single-transaction --routines --triggers --events bonc_test user_login_tb > e:\\user_login_tb.sql
3.2 對整個數據表進行恢復
#先刪除bak_bonc_test 庫中 user_login_tb的這個表
#對其進行恢復: source e:\\user_login_tb.sql;
四.第4種,制定時間點的備份和恢復和實時二進制日誌備份
這兩部分後續完善,參考《可擴展高性能mysql》第4天