美文网首页
Linux 下 mysql 进行文件导出.txt .xls

Linux 下 mysql 进行文件导出.txt .xls

作者: XM_Dong | 来源:发表于2018-05-18 11:14 被阅读382次

今天用到将数据库中的 tables 导出存入到 Excel 表格中,索性不忙就给大家把这一块的东西分享下.

第一种是个人比较喜欢使用的

mysql -uusername -ppassword -e “(SQL语句 一定要加“”)” > 存储文件(地址 + 文件名 + 文件类型(.txt/.xls等))
例:mysql -u root -p athena -e 
“select mobile from user_info where mobile REGEXP '^[1](3[0-9]|47|5[0-9]|8[0-9])[0-9]{8}$'” >  mobile.xls

第二种就是先进入数据库然后进行操作--这种比较麻烦

1 连接数据库

mysql -uuserName -hhost -ppassword datebase
mysql -u用户名 -h地址 -p密码 数据库名

2 连接数据库后

输入 sql 语句
select 字段1,字段2 into outfile “/导出后文件存储地址/test.xls” //lines terminated by"/r/n" from tableName ;
 例:select user_name into  outfile "/var/lib/mysql-files/test.xls"  from user;
     select user_name into  outfile "/var/lib/mysql-files/test.txt"  from user;
 注://lines terminated by"/r/n” 设置在每一行数据后面换行,在到成 .txt和 Excel 文件可不加.
在此处你导出数据到你自定义的文件目录的时候可能会报错
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
出现这个错的主要原因就是:在安装MySQL的时候限制了导入与导出的目录权限,只能在规定的目录下才能导入
我们需要通过下面命令查看 secure-file-priv 当前的值是什么
show variables like '%secure%’;
导出到固定目录.png 导出到任意目录.png
出现上面的错我们有两个方法去解决..

方法一

我们将输出文件的位置改成设置的固定目录输出就可以.(我推荐大家使用这种,这样不会对你的服务器造成安全隐患.)

方法二

就是更改/etc/my.cnf文件,将更改导入导出权限.
# vim /etc/my.cnf
//在[mysqld]下,增加下面两句
secure_auth=OFF
secure_file_priv=
//保存,退出
更改完成之后.png
重启 mysql 服务 : service mysql restart
然后我们测试一下
select user_name into outfile "/export/data/sqlfile/1.txt" from user;

完蛋了 居然报错

ERROR 1 (HY000): Can't create/write to file '/export/data/sqlfile/1.txt' (Errcode: 13 - Permission denied)

从错误的字面上来看,是我们没有权限进行操作.
image.png
那么好,我们就去改变下这个目录的权限
chown mysql:mysql /export/data/sqlfile/
image.png
这里注意一下:我这里更改的是我将导出的文件目录,如果你想设置到任何地方就设置根目录
我们再次执行:
select user_name into outfile "/export/data/sqlfile/1.txt" from user;
bingo ,导出成功了.
成功.png

其实你还是可能出现上面的错,你可以参考下这篇文章来解决报错的问题 : linux系统下,MySQL导入导出数据 ErrCode(13)(permission denied)解决方案

主要就是设置

setsebool -P mysqld_disable_trans=1  
//重启下 mysql 服务
service mysql restart
image.png

如果以上还是不能导出,私聊我.我帮你解决.

参考文章 :

linux系统下,MySQL导入导出数据 ErrCode(13)(permission denied)解决方案
MYSQL导入数据出现The MySQL server is running with the --secure-file-priv
mysql命令行的导入导出sql,txt,excel(都在linux或windows命令行操作)
linux系统下,MySQL导入导出数据 ErrCode(13)(permission denied)解决方案

相关文章

网友评论

      本文标题:Linux 下 mysql 进行文件导出.txt .xls

      本文链接:https://www.haomeiwen.com/subject/soawdftx.html