MySql的备份与恢复(控制台)

版权声明:Mr.O版权所有 转载请标明出处 https://blog.csdn.net/qq_28189423/article/details/82655742

1、备份

mysqldump命令:通过此命令将create 和 insert语句保存到文本文件。

命令格式 mysqldump [命令选项] 代表可选 -u用户名 -h主机 -p密码 数据库名 [表名*]  > 输出文件名.sql

mysqldump [options] –u username –h host –ppassword 
dbname[tbname1[ tbname2……]]>filename.sql

注意:此命令是在cmd窗口执行,没有进入sql控制台。

a、使用用户名和密码备份本机的test数据库。(当备份本机时不需要-p主机地址)

如果将密码直接输入在命令中,提示警告,不安全。

优化如下:

在输入命令后输入密码,同时将输出文件修改为test2.sql,方便后面进行对比

文件输出目录也就是命令执行的目录:这里我特意在桌面执行的命令。

对比生成的两个文件,完全一致。

b、备份远程主机数据库。

需要添加远程主机地址,其他的完全一致。

c、备份数据库的某一张表

复制myschool数据库的student 和 grade两张表,使用空格分割。

d、指定输出目录

文件夹sql不存在提示错误

创建文件夹sql后

e、常用参数选项(了解)

--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

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

2、恢复

a、使用mysql命令恢复数据库  (CMD窗口)

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

注意:恢复时,如果需要恢复的数据库已经不存在了,需要首先创建数据库,否则无法恢复。

b、使用source命令恢复数据库  (SQL窗口)

在包含恢复文件的目录登录mysql,这样不需要在之后指定物理路径,比较方便。

如果数据库已经没有了,先创建数据库。

切换到数据库

使用source命令恢复

猜你喜欢

转载自blog.csdn.net/qq_28189423/article/details/82655742