Mysql备份恢复相关

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [FIELDS
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char' ]
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number LINES]
    [(col_name_or_user_var,...)]
    [SET col_name = expr,...)]


[LOW_PRIORITY | CONCURRENT]
-与同时运行优先级相关,暂不考虑,insert语句也有类似选项[LOW_PRIORITY | DELAYED | HIGH_PRIORITY]
[LOCAL]
-指定后从客户端本地上传文件,可用绝对路径和相对路径,相对路径被理解为相对于启动客户端时所在的目录,一般为C:\Users\Administrator
-没有指定时,在主机端寻找文件,可用绝对路径和相对路径,当使用相对路径时理解为数据库文件夹所在目录,但要区分'./file_name.txt'和'file_name.txt'区别
[REPLACE | IGNORE]
-针对插入时出现重复唯一索引时起效,replace替换,ignore跳过
-insert语句中也有ignore选项,用于出现重复唯一索引或错误值,另[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]子句用于更新原索引
[FIELDS
    [TERMINATED BY 'string']-两个字段间用什么字符分隔/默认\t
    [[OPTIONALLY]-用于字符数据,数值数据不起效 ENCLOSED BY 'char']-一个字段用成对的字符分隔\默认空
    [ESCAPED BY 'char' ]-转义字符\默认反斜杠,用'\\'表示
]
[LINES
    [STARTING BY 'string']-记录行从什么字符开始/默认空
    [TERMINATED BY 'string']-记录行间用什么字符分隔/默认\n
]
[IGNORE number LINES]
-指定number用于从开始跳过number行开始导入
[(col_name_or_user_var,...)]
-用于指定导入字段列表,可以使用变量然后被下面的子句导入
[SET col_name = expr,...)]
-指定单个字段值


1、windows文件分隔行时应使用\r\n
2、当数据库为utf8时,导入的文件类型也应该是utf8,但是某些utf8文件会在文件头多出3个引导字节,这造成用load data infile导入时首记录的首字段出现错误,使用character_set_database用于解释导入文件的编码方式,设置character_set_database=gbk导入ascii文件,即使数据库是utf8编码也可以正常导入,这可以有效解决utf8文件导入问题
3、如果把终止符设置为'',在此情况下,文本文件必须包含每行的所有字段。
4、如果LINES TERMINATED BY是空字符串,并且FIELDS TERMINATED BY不是空字符串,则各行以FIELDS TERMINATED BY作为结尾。

-*****-

SELECT col_name FROM table_name INTO OUTFILE 'file_name'
SELECT col_name INTO OUTFILE FROM table_name
-两种方式均可
-作为与load data infile配套使用,其fileds和lines选项必须完全匹配
-如果用INTO DUMPFILE代替INTO OUTFILE,则只把一行写入到文件中,不对任何列或行进行终止,也不执行任何转义处理
-file_name如果为相对路径则被理解为相对于启动客户端时所在的目录,一般为E:\wamp\bin\mysql\mysql5.5.20\data\所在数据库名

将标准控制台输出变成文件输出
-mysql -uroot -e "Sql语句" > outfile;
-mysql -uroot < slqfile > outfile;
-上面2种方式均可,文件路径默认为启动mysql路径,一般为C:\Users\Administration\Desktop\

-*****-

数据库备份程序mysqldump
shell> mysqldump [options] db_name [tables] > file_name
-备份数据表,如果不指定表则备份全部数据表,备份语句中不包括数据库的创建,那么的恢复的时候必须首先创建并use数据库
shell> mysqldump [options] --database DB1 [DB2 DB3...] > file_name
shell> mysqldump [options] --all-database > file_name
-备份数据库,如果不指表则备份全部数据表,备份语句中不包括数据库的创建

1、mysqldump需用主机地址/用户名/密码等必要信息
2、file_name如果为相对路径则被理解为启动客户端时所在的路径,一般为C:\Users\Administrator
3、[options]可选项目较多,暂了解如下
-[--no-data]仅备份表结构
-[--add-drop-database]备份时加入删除数据库语句,防止同名数据库存在时影响数据库恢复
-[-add-drop-table]同上
4、[--add-drop-database] [-add-drop-table]有默认选项,在使用时最好用mysqldump -?查看变量值,需要改变时[-add-drop-table=false]等号两边不能有空格

5、以上参数中短横线-及其数量要精确匹配

聚石塔使用bat:

set yy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
set hh=%time:~0,2%
set mn=%time:~3,2%
if /i %hh% LSS 10 (set hh=0%time:~1,1%)
d:
cd wamp
cd bin
cd mysql
cd mysql5.5.20
cd bin
mysqldump -hlocalhost -uroot --add-drop-database --database a0109202126 > d:\wamp\sql\%yy%%mm%%dd%-%hh%.%mn%.sql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值