MySQL的物理备份

MySQL的物理备份

备份详细过程

1、关闭mysql服务
2、备份数据文件。一般在mysql/data,需要注意的有:

原理描述

  • 当表类型是MyISAM时,数据文件则以”Table.frm””Table.MYD””Table.MYI””三个文件存储于”/data/$databasename/”目录中。

  • 当表类型是InnoDB时,数据文件则存储在”$innodb_data_home_dir/″中的ibdata1文件中(一般情况),结构文件存在于table_name.frm中。

  • MySQL的数据库文件直接复制便可以使用,但是那是指“MyISAM”类型的表。 而使用MySQL-Front直接创建表,默认是“InnoDB”类型,这种类型的一个表在磁盘上只对应一个“*.frm”文件,不像MyISAM那样还“*.MYD,*.MYI”文件。

MyISAM类型的表直接拷到另一个数据库就可以直接使用,但是InnoDB类型的表却不行。 解决方法就是同时拷贝innodb数据库表“*.frm”文件和innodb数据“ibdata1”文件到合适的位置。

还原详细过程

1、关闭mysql服务
2、把备份文件还原到对应的数据目录中。注意:
如果表类型是MyISAM,直接还原data/databasename文件夹。
如果表类型是InnoDB,需要还原 ibdata1文件和data/databasename文件夹
3、更改数据目录权限 chown -R mysql:mysql mysql/data/
4、启动mysql服务,打开mysql进行验证

演示过程

[root@my ~]# systemctl stop mysqld ##关闭数据库,备份物理文件

[root@my ~]# mkdir /opt/backup  ##创建备份目录

[root@my ~]# tar zcvf /opt/backup/mysql-backup-$(date +%F).tar.gz /usr/local/mysql/data/

z:代表的是压缩
c:代表的是打包
x:代表的是解压
v:代表的是过程
f:代表的是指定文件名
zcvf代表打包压缩指定文件为f后的文件

[root@my ~]# ls /opt/backup/

mysql-backup-2019-04-17.tar.gz

 

[root@my ~]# systemctl start mysqld ##模拟数据库丢失

[root@my ~]# mysql -uroot -p123123

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

4 rows in set (0.00 sec)

mysql> drop database mysql;

Query OK, 31 rows affected, 2 warnings (0.06 sec)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| performance_schema |

| sys                |

+--------------------+

3 rows in set (0.00 sec)

mysql> exit

 

[root@my ~]# systemctl stop mysql ##恢复数据库文件

[root@my ~]# rm -rf /root/*

[root@my ~]# mkdir /root/backup

[root@my ~]# tar zxvf /opt/backup/mysql-backup-2018-08-02.tar.gz -C /root/backup/

[root@my ~]# cp /root/backup/usr/local/mysql/data/mysql/ /usr/local/mysql/data/ -rf

[root@my ~]# chown mysql:mysql -R /usr/local/mysql/data/mysql/

[root@my ~]# systemctl start mysqld

[root@my ~]# mysql -uroot -p123123

mysql> use mysql;

mysql> show tables;

+---------------------------+

| Tables_in_mysql           |

+---------------------------+

| columns_priv              |

...

mysql> exit

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值