MySQL数据库备份

tech2022-08-29  117

数据库如果误删数据或者表或者库以后只能通过备份进行还原,数据库的备份显得尤为重要,可以大大增加数据的可靠性。 1、使用mysqldump进行备份 mysqldump是MySQL数据库使用的一个备份工具,可以为MySQL实现数据库的备份 1.1 [root@localhost ~]# mysqldump -u root -p -A > all.sql 退出mysql交互模式,在系统Shell中执行(#模式下),以root用户备份当前MySQL数据库中所有库的信息至当前目录下all.sql文件中(all.sql文件就是备份文件)-u指定用户名-p输入用户的密码-A备份所有数据库 模拟数据库被误删

[root@localhost ~]# mysql -u root -p mysql> drop database auth;

[root@localhost ~]# mysql -u root -p < all.sql 利用备份进行还原(备份文件可以在其他MySQL中还原,也是一种数据迁移的方案) 备份和还原所有库会导致目标数据库中所有库和备份内容一致,适合复制MySQL服务器场景

查询数据库时,会发现数据库auth已恢复。

1.2 [root@localhost ~]# mysqldump -u root -p auth > auth.sql 只备份auth数据库,其他数据库不备份 1.3 [root@localhost ~]# mysql -u root -p auth< auth.sql 还原的时候必须指定还原到的数据库,该数据库必须存在,可以是空库。 完整备份默认会备份数据库中所有数据,如果数据库中数据巨大会导致备份时长较长。 2、开启二进制日志根据时间点进行数据库的还原操作 增量备份只备份新增数据,可以大大减少重复数据量 开启二进制日志功能 vim /etc/my.cnf 新增红色两行内容,按i进入插入模式,添加内容,使用ESC返回命令,使用:wq进行保存并退出 [mysqld] datadir=/usr/local/mysql/data socket=/tmp/mysql.sock symbolic-links=0 server-id=1 log-bin=mysql-bin [mysqld_safe] log-error=/usr/local/mysql/data/mysql.log pid-file=/usr/local/mysql/data/mysql.pid !includedir /etc/my.cnf.d

[root@localhost ~]# service mysqld restart 重启MySQL服务,使修改过的配置文件生效

开启二进制日志以后可以根据时间点进行数据库的还原操作

[root@localhost ~]# mysqlbinlog --stop-datetime=“2020-08-28 18:45:00” /usr/local/mysql/data/mysql-bin.000001 | mysql -u root -p 将数据库还原至2020-09-03 18:45的状态,需要在45分之前删除数据库中内容,还原后就可以验证。我们可以发现在2020-09-03 18:45之后建立的auth数据库已经不在了。

最新回复(0)