关于MySQL的备份和还原

2020-03-19  本文已影响0人  你好树洞先生

1. 备份和还原:

mysqldump备份:

备份:

mysqldump -u 用户名 -p 数据库名 > /备份路径、备份文件名(备份整个数据库)

mysqldump -u用户名 -p 数据库名 表名 > /备份路径、备份文件名(备份数据库表)

备份多个库: --databases 库1,库2 

备份所有库:--all-databases

备份多个表:库名 表1 表2 

还原:mysql 数据库 < 备份文件

注意:还原时,若导入的是某表,请指定导入到哪一库中。

2. mysqlhotcopy 备份:

备份:mysqlhotcopy --flushlog -u='用户' -p='密码' --regexp=正则 备份目录

还原:cp -a 备份目录 数据目录(/var/lib/mysql)

3.mysqldump和mysqlhotcopy示例:

3.1 mysql 备份和还原

#把数据库aa备份到/root目录下:

mysqldump -uroot -p aa> ~/aa.sql

#模拟数据库aa丢失(删除数据库aa)

mysql> drop database aa;

#通过aa.sql文件还原(指定导入到那个库中)

mysql -uroot -p test < aa.sql

#备份多个数据库(--databases)

mysqldump -uroot -p --databases aa test > abc.sql 

#还原(先模拟丢失)

mysql -uroot -p < abc.sql

#备份有规则的数据库

mysql> create database a1; #连续创建三个a开头的数据库

mysqlhotcopy --flushlog -u='root' -p='456' --regexp=^a

还原(先模拟丢失)

mysql> drop database a1;   #顺序删除a开头的数据库

cp -a /mnt/* /var/lib/mysql/  #复制产生的文件到数据库目录下

#登录数据库查看即可

4.mysql-binlog日志文件

二进制日志(log-bin日志):所有对数据库状态更改的操作(create、drop、update等)

修改my.cnf配置文件开启binlog日志记录功能

#vim /etc/my.cnf

log-bin=mysql-bin  #启动二进制日志

按时间还原:

--start-datatime

--stop-datetime

格式:mysqlbinlog --start-datetime 'YY-MM-DD HH:MM:SS' --stop-datetime 'YY-MM-DD'

'HH:MM:SS' 二进制日志|mysql -uroot -p

按文件大小还原:

--start-position

--stop-position

eg:

# mysqlbinlog --start datetime "2019-09-09 16:16:16" --stop-datetime "2019-09-09 16:26:16" -mysql-bin.000001 | mysql -uroot -p123456

注意:所选择的时间一定要完整包括所有动作(可以在原来的基础上稍微增加点时间)

[root@test mysql]# mysqlbinlog musql bin.000001

上一篇下一篇

猜你喜欢

热点阅读