mysql备份(导出)数据库,并恢复数据

导出某个数据库数据到文件中

  假设要导出test这个数据库,那么可以在Linux命令行(不是在mysql中)

[root@ubuntu /data]# mysqldump -uroot -p test > test.sql

  上面的操作是将test数据库中的所有表导出到一个test.sql,包含表结构和数据。导出的时候,文件名可以随意指定,默认是存到当前路径下。

利用导出的文件恢复数据

  在恢复数据之前,请事先创建好要保存数据的数据库,该数据库的名称不需要和原来的数据库名称相同,名称随意,这里假设是创建一个newTest数据库。在mysql中创建数据库执行。

mysql > create database newTest;

  

  方式1:

  直接在Linux的命令行中指定,注意 ‘<' 的左边是新创建的数据库名,右边是之前导出的sql文件:

[root@ubuntu /data]# mysql -uroot -p  newTest < test.sql

  

  方式2:

  可以在登录到mysql服务器中,使用use指定新创建的数据库,然后使用source test.sql将数据导入:

[root@ubuntu /data]# mysql -uroot -p
# 登录到mysql服务器 mysql > use newTest; mysql > source /data/test.sql # 完成

  

将查出的结果导出到文件中

mysql> select * from demo into outfile '/data.txt';

  注意:保存数据的sql文件的路径需要明确指定,方便查找。

  这种方式导出的只是内容,没有字段等信息,全是一行一行的记录。并且默认的字段间分隔使用的是制表符,当然也可以自定义分隔符,以及使用使用什么符号将每个字段的内容括起来,以及换行符。

  比如下面这样:

mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/runoob.txt'
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';

  

将查出来的数据直接直接导入到一个数据库

  其实使用的就是复制

mysql > create table dbName.tableName as  (
select tb_a.id,tb_b.name,tb_c.age from tb_a,tb_b,tb_c
);
上一篇:python大法好——操作mysql


下一篇:springboot小技巧(转)