mysql数据库的备份与还原

备份结构

1.备份表结构

mysqldump -u root -p -d dbname table1 table2 ... > a.sql

2.备份数据库的所有表结构

mysqldumo -u root -p -d dbname > b.sql

3.备份多个数据库的所有表结构

mysqldump -u root -p -d --databases db1 db2... > c.sql

4.备份所有数据库的表结构

mysqldump -u root -p -d --all-databases > d.sql

备份结构和数据(相当于在备份结构的语法上去掉-d选项)

1.备份表结构和数据

mysqldump -u root -p dbname table1 table2 ... > a.sql

2.备份数据库的所有表结构和数据

mysqldump -u root -p dbname  > b.sql

3.备份多个数据库的表结构和数据

mysqldump -u root -p --databases db1 db2  > c.sql

4.备份所有数据库的表结构和数据

mysqldump -u root -p --all-databases > d.sql

 备份表数据

select ... into outfile

select [列名] from table [where 语句] into outfile '目标文件' [options]

目标文件必须是字符串形式

options是设置导出文件的一些格式;

fields terminated by '字符串':多个字段值之间的分隔符,默认是' '

fields enclosed by '字符串':用给定的字符来包围字段值,默认不需要

fields optionally enclosed by '字符串':用给定的字符包围文本类型的字段值,默认不需要

fields escaped by '字符串':设置转义字符,默认为""

lines starting by '字符串':每条记录的开始字符,默认没有

lines terminated by '字符串':每条记录的结束符,默认是换行符

 select * from pmx.score2 where 1 into outfile '/Users/pmx/Sites/a.txt' 

select * from pmx.score2 where 1 into outfile '/Users/pmx/Sites/a.txt' fields terminated by '|' enclosed by '"' optionally enclosed by '@' lines starting by '^' terminated by '$' ;
还原表结构和数据
mysql -u root -p [dbname] < 目标文件

如果目标文件中有创建数据库的语句,则dbname省略

还原表数据

load data infile命令

load data [local] infile file into table table_name [options]


备份以及还原操作:
需要注意的是,该操作不需要登录mysql客户端,直接在本地执行,同时路径也是本地磁盘路径,为右斜杠 

备份数据:使用mysqldump命令将suppliers表备份到文件C:ktestdirsuppliers_bk.sql。 mysqldump -u root -p test suppliers > C:ktestdirsuppliers_bk.sql

注意,以下操作需要登陆mysql客户端,源文件路径为左斜杠 /

还原表数据:使用mysql命令还原suppliers表到test数据库中; DELETE FROM suppliers; source C:/bktestdir/suppliers_bk.sql; 备份数据方法2:使用SELECT… INTO OUTFILE语句导出suppliers表中的记录,导出文件位于目录C:ktestdir下,名称为suppliers_out.txt SELECT * FROM test.suppliers INTO OUTFILE "C:/bktestdir/suppliers_out.txt" FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES STARTING BY '<' TERMINATED BY '> '; 还原数据:使用LOAD DATA INFILE语句导入suppliers_out.txt数据到suppliers表。 LOAD DATA INFILE 'C:/bktestdir/suppliers_out.txt' INTO TABLE test.suppliers FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES STARTING BY '<' TERMINATED BY '> '; 数据导出:使用musqldump命令将suppliers表中的记录导出到文件C:ktestdirsuppliers_html.html。 mysql -u root -p --html --execute="SELECT * FROM suppliers;" test > C:/bktestdir/suppliers_html.html

  

实际操作:备份数据库test 外部文件test.txt中 需要注意的是,该操作不需要登录mysql客户端,直接在本地执行

 还原:先登录-->再选择目标数据库--》在执行  source C:/Users/Andrew/Desktop/sqlbak/test.txt;  记住一定是左斜杠

 

原文地址:https://www.cnblogs.com/Andrew520/p/11962730.html