最近一致在从事导数据的相关工作,期间遇到了一些问题,感觉有必要总结一下!这样下次,就可以尽可能的避免错误的重复发生! 数据库管理员通常使用mysqldump命令将数据库中的数据备份成为一个文件,通常这个文件的后缀名就是.sql。需要对数据进行还原的时候,通常使用mysql命令来还原备份的数据!
1、导出整个数据库 在未登录mysql的情况下导出整个数据库
mysqldump -u用户名 -p密码 -B 数据库名字 > 文件名的路径\要导出的文件的名字(dump是倾倒的意思)
注:①这两个导出是有区别的,带有“B”的是数据库的创建也导出了!而后者是,只将数据库中的所有表给导出了,并不存在创建库的过程!
②虽然mysqldump天生是不区分大小写的,但是对特殊的一些表示还是大小写敏感的,这里的B是必须大写的
2、导出一个表或者多个表
mysqldump -u用户名 -p密码 数据库的名字 表明1 表明2……
注意:表明与表明之间并没有逗号之类的分隔符!
3、将数据库中的数据倒成文本文件
使用select [列名] from table [where 语句] into outfile '目标文件' [option]
注意:这里有两个地方需要注意
1)目标文件的引号是不可以缺少的,否则就会报错
2)这里发现,最好使用txt文件的格式,否则导出来的文件很有可能不可用!
3)在进行路径设置的时候最好使用 "/" 进行路径的划分,虽然在windows下“/” 和 “\” 都可以作为目录的分隔符!但是,在cmd命令行下回有转义的情况!
这里以school表为例:
A、导出txt文件,这里并没有设置option参数,一切就使用默认的!
得到的文本如下:
从这里我们可以看出来,字段与字段之间默认使用的是制表符进行间隔!
B、参数①fields terminated by '|',设置字段与字段之间的分隔符, terminated:终止的意思
得到的文本值如下:
C、lines starting by '<<' ,设置每一行的开头
select * from school into outfile 'c:/Users/maweibin/Desktop/school.txt' lines starting by '<<',查询的结果如下:
4、数据库的导入命令
当我们要导入数据的时候,首先要明白一个大的前提!就是要导入的数据,是否本身有创建数据库的语句!
如果没有数据库的创建语句,我们必须先手动的,选择一个要导入的数据库,否则操作会失败!
注意:一般情况下,备份的sql文件通常都包括create语句和insert语句,mysql命令的实质,也就是通过执行这些语句对数据进行还原!
1、在未登录mysql的情况下
mysql -u用户名 -p密码 【数据库名】 < 要导入的数据库文件的路径
数据库的名字是可选的,如果没有创建数据库的过程,就需要手动的添加上!
2、在登录mysql 的情况下
我们可以直接使用source命令
source < 要导入的数据库文件
注意:以上在导入数据的时候,可以直接导入!mysql会先把这些相关的数据给干掉,然后自己再进行重建!