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命令恢复