当前位置:天才代写 > tutorial > 数据库教程 > 使用select into outfile 和 mysqldump进行部分备份

使用select into outfile 和 mysqldump进行部分备份

2021-02-23 15:08 星期二 所属: 数据库教程 浏览:526

select into outfile能够用以有标准的或是一部分导出来一张表或是好几张表的数据信息到当地

英语的语法以下:

SELECT ... INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        [export_options]
export_options:
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]

比如:

select uid,nickname,realname,mobile,idcard from  m order by m.uid desc into outfile '/var/www/api/public/a/download/m.txt' fields terminated by ',' optionally enclosed by '\"' escaped by '\"' lines terminated by '\r\n' 

意思是将数据信息导出来到m.txt,每一个字段名中间要用“,”隔开,每一行数据信息要以”\r\n”自动换行。

导出来的数据信息是沒有表头的。

导进的情况下应用LOAD指令:

LOAD DATA INFILE '/tmp/fi.txt' INTO TABLE test.fii FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'

在导出来的情况下很有可能会出错:

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

这是由于mysql服务项目打开的情况下为了更好地安全性考虑到,应用了–secure-file-priv这一主要参数,这时用 select into outfile导出来的文档只有导出来到特定的文件目录,这一文件目录能够根据下边指令查询:

SELECT @@global.secure_file_priv;
 --------------------------- 
| @@global.secure_file_priv |
 --------------------------- 
| D:\wamp64\tmp\            |
 --------------------------- 

因此 应用 select into outfile 和 load infile 都限制了只有导出来和导进这一文件目录下的数据信息。

可是 select into outfile 针对那类有text种类的文章内容表来讲不太友善,由于文章就包括了许多\r\n的换行符。

除开select into outfile以外,还能够mysqldump再加上 -w(–where)的方法开展一部分拷贝。

 mysqldump.sql\n\n# 导出来一个库的好几个表\nmysqldump -uroot -p db1 t1 t2 > mysqldump.sql\n\n# --ignore-table导出来时忽视某一表\nmysqldump -uroot -p test --ignore-table=test.t1 --ignore-table=test.t2 > /backup/mysqldump/test2.db\n\n# --all-databases 导出来全部库\nmysqldump -uroot -p --all-databases\n\n# --where导出来特殊条件的数据信息\nmysqldump -uroot -p --host=localhost --all-databases --where=” user=’root’”"}"># --databases 导出来好几个库
mysqldump -uroot -p --databases db1 db2 > mysqldump.sql

# 导出来一个库的好几个表
mysqldump -uroot -p db1 t1 t2 > mysqldump.sql

# --ignore-table导出来时忽视某一表
mysqldump -uroot -p test --ignore-table=test.t1 --ignore-table=test.t2 > /backup/mysqldump/test2.db

# --all-databases 导出来全部库
mysqldump -uroot -p --all-databases

# --where导出来特殊条件的数据信息
mysqldump -uroot -p --host=localhost --all-databases --where=” user=’root’”

代码段 小构件

 

    关键字:

天才代写-代写联系方式