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目录下的数据文件即可,恢复数据时最好采用相同版本的数据库软件
     
  • 相关阅读:
    cocos日记
    Android 开发经验
    vbs自学备份
    C# 如何在winform中嵌入Excel,内嵌Excel,word
    win7 64位在线编辑dsoframer控件的安装和使用配置
    C# 正则表达式 最全的验证类
    在 Range 对象中,Min (14)必须小于或等于 max (-1)。
    winform Form窗体和UserControl用户空间嵌入Panel容器并填充
    C# Winform防止闪频和再次运行
    Base64编码解码
  • 原文地址:https://www.cnblogs.com/toumingbai/p/3778498.html
Copyright © 2011-2022 走看看