• 怎么恢复用mysqldump备份数据和恢复数据


    1、备份:

    • 写一个脚本:
    !/bin/bash`
     echo 'dump begin'
     Now=$(date +%d-%m-%Y--%H:%M:%S) //获取当前时间
     File=backup-$Now.sql.gz //组成文件名
     mysqldump -u 用户名 -p密码 -h 域名 --port 端口 --all-databases  --single-transaction --routines --add-drop-table --quick --default-character-set=utf8  --flush-privileges | gzip > /root/mysql_backup/$File
     echo 'dump end'
    • 其中mysqldump 参数中:
    • -h 是 要连接的hostname
    • -p 是 要连接的port
    • --all-databases 说明备份的是所有数据库
    • --single-transaction 是在dump前发送一个begin命令,如果不加有可能报错:mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user 'XXXXXX'@'XXXXXX' for table 'XXXXXX' when using LOCK TABLES'
    • --routines 说明备份的时候也备份过程和函数 
    • --add-drop-table 是在每句create table前加一句drop table
    • --default-character-set=utf8 备份数据的时候编码用utf8,据说不加恢复视图的时候会出现编码错误
    • --flush-privileges 备份名字叫mysql的数据库时加上刷新权限的命令
    • --quick mysqldump可以按行检索和转储表内容,也可以检索表的整个内容并在dump之前把内容缓冲在内存中。如果你正在dump一个大表,存在缓冲里就可能出现问题。--quick选项强制按行检索和转储表内容,不把内容先存在缓冲里
    • | gzip 就是把内容直接压缩出去

    2、恢复备份

    • 命令行进入mysql:mysql -u root -p
    • `source '你的备份文件路径' * (注意备份时的mysql版本要和原来的一样,原来5.7现在也是5.7,不然容易出问题) *
  • 相关阅读:
    BZOJ 2956: 模积和
    BZOJ 1113: [Poi2008]海报PLA
    停课刷题总结-给自己一点鼓励吧
    BZOJ 2751: [HAOI2012]容易题(easy)
    Vijos 1100 加分二叉树
    BZOJ 1756: Vijos1083 小白逛公园
    BZOJ 1709: [Usaco2007 Oct]Super Paintball超级弹珠
    BZOJ 1652: [Usaco2006 Feb]Treats for the Cows
    BZOJ 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚
    BZOJ 1631: [Usaco2007 Feb]Cow Party
  • 原文地址:https://www.cnblogs.com/JohannaFeng/p/5642038.html
Copyright © 2020-2023  润新知