Mysql数据备份与还原
数据备份
mysqldump命令备份
备份单个数据库
mysqldump -u root -p DBname table1 table2 ... >BackupName.sql
DBname参数表示数据库名;table参数表示需备份的表名,若无此参数将备份整个数据库;BackupName.sql参数表示备份的文件名,文件名钱可加上路径。
备份多个数据库
mysqldump -u root -p --databases DBname1 DBname2 ... >BackupName.sql
备份所有数据库
mysqldump -u root -p --all-databases >all.sql
数据还原
命令还原
mysql -u root -p [DBname] < backname.sql
DBname参数表示数据库名称,指定数据库名,表示还原到指定数据库中;不指定数据库名时,表示还原一个特定的数据库,备份文件中存在创建数据库语句。
表的导入和导出
表的导出
select … into outfile 导出文本文件
select [列名] from table [where语句] into outfile '目标文件' [option];
option参数可以包括常用的5个选项:
- fields terminated by ‘字符串’:设置字符串为字段的分隔符,默认值是‘\t’;
- fields enclosed by ‘字符’:设置字符来括上字段的值,默认情况下不使用任何符号。
- fields optionally enclosed by ‘字符’:设置字符来括上char,varchar和text等字符型字段,默认情况下不使用任何符号。
- fields escaped by ‘字符’:设置转义字符,默认为‘ \’。
- lines starting by ‘字符串’:设置每行开头的字符,默认情况下无任何字符。
- lines terminated by ‘字符串’:设置每行的结束符,默认值为‘\n’。
mysqldump命令导出文本文件
mysqldump -u root -p -T 目标目录 DBname table [option]
option可选项如下:
- –fields-terminated-by=字符串:设置字符串为字段的分隔符,默认值是‘\t’
- –fields-enclosed-by=字符:设置字符来括上字段的值
- –fields-optionally-enclosed-by=字符:设置字符括上char、varchar华润text等字符型字段
- –fields-escaped-by=字符:设置转义字符
- –lines-escaped-by=字符串:设置每行结束符
mysqldump命令还可以导出xml格式文件语法如下
mysqldump -u root -p [--xml|-X ]DBname table > name.xml
–xml或者-X选项就可以导出xml格式文件
mysql命令导出文件
mysql -u root -p -e "select 语句" DBname > name.txt
导入文本文件
load data infile方式导入文本文件
load data [local] infile file into TABLE table [option]
option参数常用选项
- fields terminated by ‘字符串’:设置字符串为字段分隔符
- fields enclosed by ‘字符’:设置字符来括上字段的值,默认情况下不使用任何符号
- fields optionally enclosed by ‘字符’:设置字符来括上char、varchar和text等字符型字段,默认情况下不使用任何符号
- fields escaped by ‘字符’:设置转义字符,默认值是‘\’
- lines starting by ‘字符串’:设置每行开头的字符,默认情况下无任何字符
- lines terminated by ‘字符串’:设置每行的结束符,默认值是‘\n’
- ignore n lines:忽略文件前的n行记录
- set column=expr:将指定的列column进行相应转换后加载,使用expr表达式来进行转换
- (字段列表):根据字段列表中的字段和顺序来加载记录
mysqlimport命令导入文本文件
mysqlimport -u root -p [--local] DBname file [option]
option可选项如下:
- –fields-terminated-by=字符串:设置字符串为字段的分隔符,默认值是‘\t’
- –fields-enclosed-by=字符:设置字符来括上字段的值
- –fields-optionally-enclosed-by=字符:设置字符括上char、varchar华润text等字符型字段
- –fields-escaped-by=字符:设置转义字符
- –lines-escaped-by=字符串:设置每行结束符
- –ignore-lines=n:表示可忽略前几行