zoukankan      html  css  js  c++  java
  • MySql数据备份与恢复小结

    方法1

    备份

    1 SELECT * INTO OUTFILE "D:\1.sql" FROM 表名;

    恢复

    1 LOAD DATA INFILE "D:\1.sql" INTO TABLE 表名;
    补充几个设置
    1. FIELDS TERMINATED BY ',' #字段间隔符
    2. OPTIONALLY ENCLOSED BY '"' #字符串类型字段包围符
    3. LINES TERMINATED BY ' ' #换行符
    于是备份命令改为
    1 SELECT
    2     * INTO OUTFILE "D:\1.sql" FIELDS TERMINATED BY ','
    3     *  OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '
    '
    4 FROM
    5     表名;

    恢复数据改为
    1 LOAD DATA INFILE "D:\1.sql" 
    2   INTO TABLE 表名 
    3 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '
    ';

    注意

    1. 要有文件目录的读写权限 特别是在linux下
    2. 不能备份表结构 善用SHOW CREATE TABLE 表名来获取结构并备份;

    方法2

    备份

    1 mysqldump -uroot -p密码 数据库名 -l -F > '/usr/data.sql'
    2 
    3 #在mysql5.6中失效原因是不能在命令行中出现密码   需要在etc下的my.cnf中写入
    4 [mysqldump]
    5 user=备份用户名
    6 password=备份用户密码
    7 #然后执行
    8 mysqldump 数据库名 -l -F > '/usr/data.sql'

     恢复的时候可能会因为数据过大造成失败 先运行

    set global wait_timeout=60000;
    set global max_allowed_packet = 64*1024*1024

    恢复

    1 mysql -uroot -p123456 数据库名 -v -f</usr/data.sql
    2 #-v 查看详细信息
    3 #-f 当中间遇到错误 可以跳过 忽略错误

    恢复binlog数据

    1 #恢复全部数据
    2 mysqlbinlog --no-defaults mysql.000001 |mysql -uroot -p123456 数据库名
    3 #恢复部分数据
    4 mysqlbinlog --no-defaults mysqlbinlog.00001 --start-position="193" --stop-position="280"  |mysql -uroot -p123456 数据库名
    5 #根据pos位置193到280之间 恢复数据

     

    方法3

    停掉mysql的服务,然后tar打包data目录下的数据文件即可,恢复数据时最好采用相同版本的数据库软件
     
  • 相关阅读:
    填坑!!!virtualenv 中 nginx + uwsgi 部署 django
    树的遍历与递归
    Python 函数的参数
    virtualbox安装增强功能时【未能加载虚拟光盘】
    深入理解Python中的生成器
    Genymotion下载慢或者下载失败的解决办法
    Python3 多线程的两种实现方式
    Java 多线程
    关于"裁员与面试"的个人感悟吧
    三、由简单对象组装复杂实例的模式:建造者模式
  • 原文地址:https://www.cnblogs.com/toumingbai/p/3778498.html
Copyright © 2011-2022 走看看