本篇博客(第七篇)重点:
了解 MySQL 数据库备份和恢复的几种方法
掌握 mysqldump 命令导出数据
掌握 source 命令导入数据
MySQL的备份
数据库备份必要性:
保证重要数据不丢失
数据转移
MySQL 数据库备份方法:
mysqldump 备份工具
数据库管理工具,如 SQLyog、Navicat
直接拷贝数据库文件和相关配置文件
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 TABLE 和 UNLOCK 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数据库的恢复
方法一:用 SOURCE 语法
/path/ 是一个绝对路径,并且必须是 mysql 运行用户有权限读取的文件
SOURCE 在 MySQL 命令行 里执行
SOURCE /path/db_name.sql;
注:都要先创建或选择数据库
方法二:用 mysql 客户端
mysql –u root –p dbname < /path/db_name.sql;
利用 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;