美文网首页
关于MySQL的备份和还原

关于MySQL的备份和还原

作者: 你好树洞先生 | 来源:发表于2020-03-19 17:54 被阅读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

    相关文章

      网友评论

          本文标题:关于MySQL的备份和还原

          本文链接:https://www.haomeiwen.com/subject/xirlyhtx.html