T-SqlMysqlMySQL数据库

MySql备份·完全备份mysqldump

2023-02-05  本文已影响0人  技术老男孩

一、备份相关概念:

二、完全备份说明:

三、语法格式:

mysqldump 备份数据格式

mysqldump -uroot -p密码 备份语句 > /目录名/备份文件名.sql

  • 备份语句格式:
    库名 表名:备份一张的所有数据
    库名 表名1 表名2:备份多张表的所有数据
    -B 库名:备份1个库的所数据
    -B 库名1 库名2:备份多个库的所数据
    -A 或 --all-databases:备份服务器的所有数据

mysql 恢复数据格式

mysql -uroot -p密码 [库名] < /目录名/备份文件名.sql
说明:使用表的备份文件恢复数据时必须写库名

四、完全备份示例:

物理方式备份:

# 必须先停止mysql服务器
[root@host50 ~]# systemctl  stop   mysqld 
# 创建备份文件夹
[root@host50 ~]# mkdir  /bakdir

# 备份数据方式一:拷贝数据库目录
[root@host50 ~]# cp -rp /var/lib/mysql  /bakdir/mysql.bak
# 备份数据方式二:打包压缩数据库目录下文件
[root@host50 ~]# cd /var/lib/mysql
[root@host50 ~]# tar -zcf  /bakdir/mysql.tar.gz ./*   
[root@host50 ~]# ls /bakdir/
mysql.bak    mysql.tar.gz
# 模拟数据丢失
[root@host50 ~]# rm -rf /var/lib/mysql/*
# 文件拷贝回数据库目录
[root@host50 ~]# cp -r /bakdir/mysql.bak/* /var/lib/mysql/
# 修改属主属组为mysql
[root@host50 ~]# chown -R mysql:mysql /var/lib/mysql
# 重新启动mysql服务
[root@host50 ~]# systemctl  start mysqld
# 登录mysql验证
[root@host50 ~]# mysql -uroot -p123qqq...A
mysql> show  databases;   
# 解压数据至mysql目录下
[root@host50 ~]#tar -zxf /bakdir/mysql.tar.gz  
-C /var/lib/mysql
# 重新启动mysql服务
[root@host50 ~]#systemctl  start mysqld
# 登录mysql验证
[root@host50 ~]# mysql -uroot -p123qqq...A
mysql> show  databases;   

逻辑方式备份:

# 备份tarena库salary表的所有数据
[root@host50 ~]# mysqldump -uroot -p密码  tarena salary > /bakdir/tarena_salary.sql
# 备份tarena库所有数据
[root@host50 ~]# mysqldump -uroot -p密码  -B  tarena > /bakdir/tarena.sql
# 备份tarena库和 db1库的所有数据
[root@host50 ~]# mysqldump -uroot -p密码  -B db1 tarena > /bakdir/twodb.sql
# 备份所有数据
[root@host50 ~]# mysqldump -uroot -p密码  -A > /bakdir/allbak.sql
[root@host50 ~]# ls /bakdir/
allbak.sql  tarena.sql  tarena_salary.sql    
mysql.bak  mysql.tar.gz  twodb.sql
# 模拟数据丢失,删除表数据
mysql> delete from  tarena.salary;
mysql> exit

# 导入备份恢复数据
[root@host50 ~]# mysql -uroot -p密码 tarena < /bakdir/ tarena_salary.sql
# 查看表记录
[root@host50 ~]# mysql -uroot -p密码
Mysql> select count(*)  from  tarena.salary;
...
# 使用库的备份文件恢复数据
mysql> drop database tarena;
mysql> exit;

# 使用库的备份文件恢复数据 不需要写库名
[root@host50 ~]# mysql -uroot -p密码  < /bakdir/tarena.sql    

# 管理员登陆查看数据
[root@host50 ~]# mysql -uroot -p密码 
mysql> show  databases;
...
mysql> use  tarena;
...
mysql> show tables;
...
上一篇下一篇

猜你喜欢

热点阅读