MySQL有三种保证数据安全的办法:
- 数据库备份:通过导出数据或表文件的拷贝来保护数据
- 二进制日志文件:保存更新数据的所有语句
- 数据库复制:MySQL内部复制功能建立在两个以上服务器之间,其中一个作为主服务器,其他的作为从服务器
7.1 常用的备份恢复方法
7.1.1 使用sql语句:导出或导入表数据
用户可以使用 select into…outfile语句把表数据导入到一个文本文件中,并用load data…infile语句恢复数据,但是这种方法只能导出或导入数据的内容,不包括表的结构,如果表的结构文件损坏,必须先恢复原来的表的结构。
1. 导出表数据
select * into outfile '文件名1'
[fields
[terminated by 'string']
[[optionally] enclosed by 'char']
[escaped by 'char']
]
[lines terminated by 'string']
| dumpfile '文件名2'
备注:作用是将表中select语句选中的行写入到一个文件中,文件默认在服务器主机上创建,如果要指定位置,则要在文件名前加上具体的路径。在文件中,数据行以一定的形式存放,空值用’\N’表示
使用outfile时,可以加入两个自选的子句,作用是决定数据行在文件中存放的格式
(1)fields 子句:需要下列三个指定中的至少一个。
- terminated by :指定字段值之间的符号,例如”terminated by ‘,’“指定逗号作为两个字段之间的标志
- enclosed by :指定包裹文件中字符值的符号,例如"enclosed by ’ " ’ ",表示文件中字符值放在双引号之间,若加上关键字optionally表示所有的值都放在双引号之间
- escaped by:指定转义字符,例如,‘escaped by ‘*’ ’,将该符号指定为转义字符,取代’\‘,如空格将表示为“*N”。
(2)lines 子句:使用terminated by指定一行结束的标志,如“lines terminated by ‘?’”表示一行以’?‘作为结束标志
如果两个子句都没有指定,则默认下述字句
fields terminated by '\t' enclosed by '' escaped by '\\'
lines terminated