MySQL数据备份、还原与迁移

一、数据备份------mysqldump

1、语法:

mysqldump -u user(用户名)-h host(登录用户的主机名称)-p password(登录密码)
dbname(需要备份的数据库名称)[tbname,tbname1(数据库中需要备份的数据表] >存储路径

2、数据库备份

①单个数据库备份
语法:C:\WINDOWS\system32>mysqldump -u root -p 库名>存储路径
【例】C:\WINDOWS\system32>mysqldump -u root -p webshop>G:\a\webshop.bak
②多个数据库备份
语法:C:\WINDOWS\system32>mysqldump -u root -p --databases 库名 库名1>存储路径
【例】C:\WINDOWS\system32>mysqldump -u root -p --databases webshop zixi>G:\a\w5.bak
注:多个数据库备份的关键字是“--databases”,并且数据库之间分隔用空格;
③全部数据库备份
语法:C:\WINDOWS\system32>mysqldump -u root -p --all-databases>存储路径
【例】C:\WINDOWS\system32>mysqldump -u root -p --all-databases>G:\a\webshop1.bak

3、数据表备份

①单个数据表备份
语法:C:\WINDOWS\system32>mysqldump -u root -p 库名 表名>存储路径
【例】C:\WINDOWS\system32>mysqldump -u root -p webshop guke>G:\a\webshop1.bak
②多个数据表备份
语法:C:\WINDOWS\system32>mysqldump -u root -p 库名 表名 表名1>存储路径
【例】
C:\WINDOWS\system32>mysqldump -u root -p webshop guke shangpin>G:\a\webshop1.bak
注:
MySQL中如果直接复制数据库文件目录备份的方法,只适用于MyISAM引擎的表,并且这种方法 还容易造成数据库的崩溃。

二、数据还原

1、未登录在服务器里面

语法:C:\WINDOWS\system32>mysql -u root -p 存放数据的资料的数据库<导入的数据的路径
【例】:C:\WINDOWS\system32>mysql -u root -p text<G:\a\zixi.bak

2、登录在服务器里面

语法:mysql> source 导入的数据的路径
【例】mysql> source G:\a\webshop.bak

三、数据库迁移

1、迁移数据库的原因:

  • 需要安装新的数据库服务器
  • MySQL的版本更新
  • 数据库管理系统的变更

2、相同版本的MySQL数据库之间的迁移

mysqldump -h 原主机名 -u root -p password 数据库名 |
mySQL -h 新主机名 -u root -p passward

3、不同版本的MySQL数据库之间的迁移
  数据库备份,然后在导入数据库中

四、表的导入和导出(一次只能一张表)

1、导出

(1)mysqldump语句导出文本文件

语法:
mysql -u 用户名 -p --execute="查询语句" 数据库名>数据文件路径及文件名 [--default-character-set=字符集]
【附】
如果数据文件中的数据有中文,则需要通过--default-character-set参数设置中文字符集来保存数据文件
【例】
C:\WINDOWS\system32>mysql -u root -p --execute="select * from writers" zixi
>G:\\知识点\\exercise\\writers.txt --default-character-set=utf8

注意:

  • 必须不在MySQL里面
  • 使用双引号
  • 等号后面不能有空格
  • 结尾没有分号

【效果】
w_id w_name w_address w_age w_note
1     海明威      NULL 67     NULL
2     罗贯中       NULL 34 NULL
3     曹雪芹       NULL 43 NULL

(2)select……into outfile语句导出文本文件

语法:
查询语句 into outfile '数据文件路径及文件名' [fields terminated by '分隔符']
[lines terminated by '换行符']
fields terminated by每条记录数据之间的分隔符 
lines terminated by记录之间是怎么分隔的
【例】
)mysql> select * from books into outfile 'G:\\知识点\\exercise\\books.txt' fields terminated by ',' lines terminated by '\r\n';
)mysql> select * from books into outfile 'G:\\知识点\\books.txt';

注意:

  • 指定路径时,需要使用“\\”,而不是“\”;
  • 注意在文件路径和文件名中也要加“\\”;

【效果】
1)
1,老人与海,海明威,1
2,三国演义,罗贯中,2
3,红楼梦,曹雪芹,3
4,祥林嫂,鲁迅,4
2)
1 老人与海 海明威 12 三国演义 罗贯中 23 红楼梦 曹雪芹 3

2、导出

【附】清空表数据---语句:delete from 表名;

(1)mysqlimport 语句

语法:
mysqlimport [-h 服务器地址] -u 用户名 -p 数据库名
数据文件路径及文件名
[--fields-terminated-by=分隔符]
[--lines-terminated-by=换行方式]
[--ignore-lines= 忽略行数]
【附】
)文件名必须以表名命名
)等号后面不能有空格
)最后不能有冒号
【例】
C:\WINDOWS\system32>mysqlimport -u root -p zixi G:\\知识点\\books.txt

(2)load data infile ……into table语句导入数据

语法:
load data infile '数据文件路径及文件名.扩展名' into table 表名
[fields terminated by '分隔符' lines terminated by '换行符' ignore 行数 lines];
【例】
mysql> load data infile 'G:\\知识点\\books.txt'into table books;

附:
1、表的备份与表的导入的区别
数据备份与还原只能是相同的数据库,数据的迁移(导入和导出)可以是不用相同的数据库
导出数据库:到导出数据库中某个表或者多个表。
备份数据库:是备份数库中的所有数据包括表、视图、存储过程、函数等等
2、直接复制到数据库目录
如果数据库通过复制数据库文件备份,可以直接复制备份的文件到到MySQL数据目录下实现还原。通过这种方式还原时,必须保存备份数据的数据库和待还原的数据库服务器的主版本号相同。而且这种方式只对 MyISAM引擎的表有效。对于InnoDB引擎 的表不可用。

最新文章

  1. linux yum 命令
  2. HDU 5130 Signal Interference --计算几何,多边形与圆的交面积
  3. div加jquery实现iframe标签的功能
  4. git命令常见问题总结
  5. 关于FragmentManager findFragmentById 返回nul
  6. ios应运程序的五种状态
  7. iOS 抓取 UIwebview 上 所有 图片 并进行滚动播放
  8. HTML5的local storage存储的数据到底存到哪去了
  9. Android studio GPU Monitor :GPU Profiling needs to be enabled in the device&#39;s developer options
  10. oracle转Mysql中,varchar2(10)和number应该转换为什么类型? (转)
  11. PHP 数组拼接成字符串
  12. Android Weekly Notes Issue #253
  13. AngularJS 路由精分
  14. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第五集之补充-使用桥接模式实现虚拟机作为服务器,让同网段的其他主机远程连接】
  15. ArcMap中属性字段计算器(Field Calculator)的使用技巧
  16. Oracle EBS when-validate-record 个性化无效果
  17. 使用 Travis CI 自动部署 Hexo 站点至 GitHub Pages
  18. nginx防攻击的简单配置
  19. Android 优秀开源项目
  20. WinForm 之 程序退出

热门文章

  1. Django 权限管理(二)
  2. PHP单例模式 demo
  3. 【洛谷p2822】组合数问题
  4. c# 操作文本文件
  5. rac 配置dg完成版
  6. 不安装Oracle数据库使用plsqldevloper
  7. Django框架(一)
  8. noip2014无线网络发射器选址
  9. cogs448
  10. 《高性能SQL调优精要与案例解析》新书样章