逻辑备份与恢复
使用数据库服务软件自带命令或安装其他软件提供的命令备份和恢复
使用mysql服务软件提供的命令做备份和恢复
!!!数据库服务必须是运行状态!!!!
完全备份命令格式
]# mysqldump -uroot -p密码 库名 > /目录名/备份文件名.sql
库名的表示方式:
库名 表名 #仅备份库下一张的所有记录
库名 表名1 表名2 #一起备份库下2张表的所有记录
-B 库名 #仅备份1个库里的所有表
-B 库名1 库名2 #一起备份2个库里的所有表
-A 或 --all-databases #备份服务器上的所有库所有表
完全恢复数据命令格式
]# mysql -uroot -p密码 [库名] < /目录名/备份文件名.sql
!!!!使用表的备份文件恢复数据的时必须写库名,不然数据库服务不知道把数据恢复那个库里!!!!
备份数据例子
存储备份文件的目录要事先创建
[root@host50 ~]# mysqldump -uroot -p密码 db1 t41 > /bakdir/db1_t41.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@host50 ~]#
[root@host50 ~]# mysqldump -uroot -p密码 -B db1 > /bakdir/db1.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@host50 ~]#
[root@host50 ~]# mysqldump -uroot -p密码 -B db1 mysql > /bakdir/twodb.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@host50 ~]#
[root@host50 ~]# mysqldump -uroot -p密码 -A > /bakdir/allbak.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@host50 ~]# ls /bakdir/
allbak.sql db1.sql db1_t41.sql db1_user.sql mysql.bak mysql.tar.gz twodb.sql
[root@host50 ~]#
恢复数据例子
mysql> delete from db1.t41;
Query OK, 3 rows affected (0.03 sec)
mysql> drop table db1.t41;
Query OK, 0 rows affected (0.10 sec)
mysql> exit
[root@host50 ~]# mysql -uroot -p654321 < /bakdir/db1_t41.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1046 (3D000) at line 22: No database selected #没写库名报错 使用表的备份文件恢复数据 必须写库名
[root@host50 ~]#
[root@host50 ~]# mysql -uroot -p654321 db1 < /bakdir/db1_t41.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@host50 ~]#
使用库的备份文件恢复数据
mysql> drop database db1;
Query OK, 10 rows affected (1.05 sec)
mysql> exit;
[root@host50 ~]# mysql -uroot -p654321 < /bakdir/db1.sql #使用库的备份文件恢复数据 不需要写库名
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@host50 ~]#
[root@host50 ~]# mysql -uroot -p654321
mysql> show databases;
mysql> use db1;
mysql> show tables;
编写计划任务每周周一晚上23点备份 服务的所有数据 用系统日期做备份文件名
]#crontab -e
00 23 * * 1 mysqldump -uroot -p654321 -A > /bakdir/`date +%F`_allbak.sql
mysqldump的备份缺点:
1 mysqldump 在备份数据和恢复数据的时候会锁表
2 使用 mysqldump备份命令生成备份文件恢复数据,只能
把数据恢复备份时刻的数据。
mysql----逻辑备份与恢复(mysqldump命令---可能会锁表)
于 2022-07-14 14:12:06 首次发布