mysql数据库的备份与还原

好久不见. 提交于 2019-12-19 09:43:29

备份结构

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 '字符串':多个字段值之间的分隔符,默认是'\t'

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:\bktestdir\suppliers_bk.sql。
mysqldump -u root -p test suppliers > C:\bktestdir\suppliers_bk.sql
注意,以下操作需要登陆mysql客户端,源文件路径为左斜杠 /还原表数据:使用mysql命令还原suppliers表到test数据库中;
DELETE FROM suppliers;
source C:/bktestdir/suppliers_bk.sql;

备份数据方法2:使用SELECT… INTO OUTFILE语句导出suppliers表中的记录,导出文件位于目录C:\bktestdir下,名称为suppliers_out.txt
SELECT * FROM test.suppliers INTO OUTFILE "C:/bktestdir/suppliers_out.txt"
  FIELDS
    TERMINATED BY ','
    ENCLOSED BY '\"'
  LINES
    STARTING BY '<'
    TERMINATED BY '>\r\n';

还原数据:使用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 '>\r\n';

数据导出:使用musqldump命令将suppliers表中的记录导出到文件C:\bktestdir\suppliers_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;  记住一定是左斜杠

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!