MySQL中备份和恢复重点总结

MySQL的备份:

数据库备份必要性:

  1. 保证重要数据不丢失
  2. 数据转移

 

MySQL数据库备份方法:

1. mysqldump备份工具(mysqldump它是和mysql同一级别的命令)

将CREATE和INSERT INTO语句保存到文本文件

属于DOS命令

作用:

  1. 转储数据库
  2. 搜集数据库进行备份
  3. 将数据转移到另一个SQL服务器(不一定是MySQL服务器)

语法:

mysqldump [options] –u username –h host –p password

dbname[tbname1[,tbname2……]]>filename.sql

options:选项参数

username:用户名

host:登录主机名

password:密码

dbname:需备份的数据库名

tbname1[,tbname2……]]:需备份的表名(省略则备份所有表)

>:输出到

filename.sql:备份后的文件名称

 

注:

  1. P后面的密码可以不写直接进入填写密码的格式
  2. 备份后的文件名称前的大于号“>”一定要写,否则就会报错

MySQL中备份和恢复重点总结_第1张图片

Mysqldump --help可以帮助你查看查看Mysqldump里的可选参数

Mysqldump –help | more也可以查看查看Mysqldump里的可选参数,但是此时可以一行一行看

有记不住的参数直接百度就可以了

常用参数选项:

参数

描述

-add-drop-table

在每个CREATE TABLE语句前添加DROP TABLE语句,默认是打开的,可以用-skip-add-drop-table来取消

--add-locks

该选项会在INSERT 语句中捆绑一个LOCK TABLE 和UNLOCK TABLE 语句

好处:防止记录被再次导入时,其他用户对表进行的操作

-t或-no-create-info

只导出数据,而不添加CREATE TABLE语句

-c或--complete-insert

在每个INSERT语句的列上加上列名,在数据导入另一个数据库时有用

-d或--no-data

不写表的任何行信息,只转储表的结构

--where "where- condition", -w "where- condition"

只转储给定的WHERE条件选择的记录

--opt

该选项是速记;等同于指定

--add-drop-tables

--add-locking

--create-option

--disable-keys

-- extended-insert

--lock-tables

--quick

--set-charset

 

执行结果示例:

MySQL中备份和恢复重点总结_第2张图片MySQL中备份和恢复重点总结_第3张图片

 

2. 数据库管理工具,如SQLyog

步骤:

  1. 找到要备份的数据库,右键选择备份/导出,选择以SQL转储文件导出
  2. 挑选要备份的文件夹,在tables中选择要备份的表,在上面选择导出的东西
  3. 选择导出到的文件夹,并选择写入文件选项

(记住选择文件选项时一定不要勾选“包括‘USE database’语句”和“包括‘CREATE database’语句”;否则会出现显示导入成功,数据库中却为空的情况)

注:

打钩的选项看清楚不能影响恢复

 

3. 直接拷贝数据库文件和相关配置文件

在C盘中的隐藏文件夹ProgramData中找到MySQL选择MySQL Server 5.5找到data路径是:C:\ProgramData\MySQL\MySQL Server 5.5\data;然后就能看到各个数据库,在里面直接复制后缀为.frm;.MYD;.MYI这三个文件就可以

此方法不是最优的数据库备份和恢复方案

MySQL中备份和恢复重点总结_第4张图片

4. 使用SQL命令方式来备份

语法:

SELECT 列元素 INTO OUTFILE '文件路径' FROM 要备份的文件;

示例:

SELECT studentno,studentname INTO OUTFILE 'D:/mysqlfile/school.sql' FROM student;

注:

备份出去的文件不可以提前存在;而且文件夹路径中不能有中文

 

MySQL数据库的恢复:

1. mysqldump备份工具(mysqldump它是和mysql同一级别的命令)

方法一:

用SOURCE语法:

/path/是一个绝对路径,并且必须是mysql运行用户有权限读取的文件

SOURCE在MySQL命令行里执行

SOURCE /path/filename;   

示例:

CREATE DATABASE myschoolDB2;  #创建数据库

USE myschoolDB2;  #选择数据库

source d:\backup\myschool_20160808.sql; #恢复数据库

步骤:

  1. 登录MySQL服务后使用
  2. use 要恢复到的数据库
  3. 然后再MySQL里写:source 脚本路径,这样就能恢复到数据库里

方法二:

用mysql客户端

mysql –u username –p password [dbname] < filename.sql;

filename.sql:备份文件名

步骤:

  1. 登录DOS系统
  2. 直接输入mysql –uroot –p08170327 test<脚本路径

 

2. 数据库管理工具,如SQLyog

步骤:

  1. 选择要恢复的数据库,右键选择导入,选择以SQL转储文件导入
  2. 填入要恢复的文件夹以及文件名,点击导入

(有时会出现显示导入成功,数据库中却为空的情况,原因是选的文件名和恢复的文件中create以及use的名字不同,请往前看)

 

3. 使用SQL命令方式来恢复

语法:

LOAD DATA INFILE '文件路径' INTO TABLE 要恢复到的表的列;

示例:

USE test;

CREATE TABLE student(

        id INT(4),

        sname VARCHAR(20)

)

#将备份出去的数据恢复到test数据库student表中

LOAD DATA INFILE 'D:/mysqlfile/school.sql' INTO TABLE student(id,sname);

SELECT *FROM student;

总结:

MySQL中备份和恢复重点总结_第5张图片

你可能感兴趣的:(编程,MySQL数据库,数据库安装配置及重点知识总结)