Qingquan-Li / blog

My Blog
https://Qingquan-Li.github.io/blog/
132 stars 16 forks source link

MySQL_7 MySQL数据库备份与恢复 #26

Open Qingquan-Li opened 7 years ago

Qingquan-Li commented 7 years ago

本篇博客(第七篇)重点:

了解 MySQL 数据库备份和恢复的几种方法 掌握 mysqldump 命令导出数据 掌握 source 命令导入数据

MySQL的备份

数据库备份必要性:

MySQL 数据库备份方法:



mysqldump

mysqldump 客户端

作用: 转储数据库 搜集数据库进行备份 将数据转移到另一个 SQL 服务器(不一定是 MySQL 服务器)

语法:

mysqldump -h主机名 –u用户名 –p [options] 数据库名 
[table1 table2 table3] > path/filename.sql 

其中,path/filename.sql 为预存文件目录,须有该目录读写权限

实例 备份 myschool 数据库

> mysqldump -uroot -p myschool > d:/myschool.sql
EnterPassword:****

mysqldump 常用选项

可通过 mysqldump --help 查看该命名的选项

符号名称 描述
--add-drop-table 导出 sql 脚本会加上 DROP TABLE IF EXISTS 语句,默认是打开的,可以用 --skip-add-drop-table 来取消
--add-locks 该选项会在 INSERT 语句中捆绑一个 LOCK TABLEUNLOCK TABLE 语句
好处:防止记录被再次导入时,其他用户对表进行的操作,默认是打开的
-t

--no-create-info
忽略不写重新创建每个转储表的 CREATE TABLE 语句
-c

--complete-insert
在每个 INERT 语句的列上加上字段名。在数据库导入另一个数据库时非常有用
-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

实例 利用 mysqldump 导出数据库

> mysqldump -uroot -p -c myschool subject> d:/subject.sql


MySQL数据库的恢复




利用 SQL 语句导出、导入数据

语法:

SELECT * INTO OUTFILE 'file_name' FROM tbl_name
LOAD DATA INFILE 'file_name' INTO TABLE tbl_name [FIELDS]


实例:

#导出数据库
> mysqldump -u root -p -c --opt myschool > /path/myschool_bak.sql

#恢复数据库方法一
> source /path/myschool_bak.sql;
#恢复数据库方法二
> mysql -uroot -p myschool < /path/myschool_bak.sql;