导出mysql数据库数据
1.phpmyadmin导出
SELECT `a`.`order_sn`,`a`.`member_id`,`c`.`job_number`,`a`.`shouhuo_name`,`a`.`shouhuo_moblie`,`a`.`shouhuo_tel` FROM ( SELECT * FROM `newerp_jifen_order` WHERE `shouhuo_time` > 0 AND `fahuo_time` > 0 AND `business_id` = 27 AND `add_time` > 1537804800 AND `shipping_status` = 3 ) AS `a`
LEFT JOIN ( SELECT * FROM `newerp_jifen_order_log` WHERE `content` = '客户确认收货' GROUP BY `order_id` ) `b` ON ( `a`.`order_id` = `b`.`order_id` )
JOIN `newerp_member` AS `c` ON (`a`.`member_id` = `c`.`id`) WHERE `b`.`order_id` IS NULL
以上只是一个示例,发现在phpmyadmin里面不能导出SQL (insert)

原因:原来在phpmyadmin里面只能导出类似单表的SQL(insert)的文件。
解决方案:在查询外面套用一个统一临时查询 SELECT
SELECT `t`.* FROM ( SELECT `a`.`order_sn`,`a`.`member_id`,`c`.`job_number`,`a`.`shouhuo_name`,`a`.`shouhuo_moblie`,`a`.`shouhuo_tel` FROM ( SELECT * FROM `newerp_jifen_order` WHERE `shouhuo_time` > 0 AND `fahuo_time` > 0 AND `business_id` = 27 AND `add_time` > 1537804800 AND `shipping_status` = 3 ) AS `a`
LEFT JOIN ( SELECT * FROM `newerp_jifen_order_log` WHERE `content` = '客户确认收货' GROUP BY `order_id` ) `b` ON ( `a`.`order_id` = `b`.`order_id` )
JOIN `newerp_member` AS `c` ON (`a`.`member_id` = `c`.`id`) WHERE `b`.`order_id` IS NULL ) AS `t`
这样就可以导出:

导出之后,放入本地Navicat for MySQL工具中运行SQL,最终导出到Excel,最后发现Excel一些长的数字字符串会被转换为科学记数法,而且还是在后面补0,导致一些长数字字符串错误
解决方案:
SELECT CONCAT("'",`order_sn`) as `order_sn`,`member_id`,`job_number`,`shouhuo_name`,`shouhuo_moblie`,`shouhuo_tel` FROM `t`
2. 直接mysqldump
一.MYSQL的命令行模式的设置:
桌面->我的电脑->属性->环境变量->新建->
PATH=“;path\mysql\bin;”其中path为MYSQL的安装路径。
二.简单的介绍一下命令行进入MYSQL的方法:
1.C:\>mysql -h hostname -u username -p .C:\>mysql -h localhost -u root-p
按ENTER键,等待然后输入密码。这里hostname为服务器的名称,如localhost,username为MYSQL的用户名,如root。
进入命令行后可以直接操作MYSQL了。
2.简单介绍一下MYSQL命令:
mysql->CREATE DATABASE dbname;//创建数据库
mysql->CREATE TABLE tablename;//创建表
mysql->SHOW DATABASES;//显示数据库信息,有那些可用的数据库。
mysql->USE dbname;//选择数据库
mysql->SHOW TABLES;//显示表信息,有那些可用的表
mysql->DESCRIBE tablename;//显示创建的表的信息
三.从数据库导出数据库文件:
1.将数据库mydb导出到e:\mysql\mydb.sql文件中:
打开开始->运行->输入cmd 进入命令行模式
c:\>mysqldump -h localhost -u root -p mydb >e:\mysql\mydb.sql
然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。
2.将数据库mydb中的mytable导出到e:\mysql\mytable.sql文件中:
c:\>mysqldump -h localhost -u root -p mydb mytable>e:\mysql\mytable.sql
3.将数据库mydb的结构导出到e:\mysql\mydb_stru.sql文件中:
c:\>mysqldump -h localhost -u root -p mydb --add-drop-table >e:\mysql\mydb_stru.sql
四.从外部文件导入数据到数据库中:
从e:\mysql\mydb2.sql中将文件中的SQL语句导入数据库中:
1.从命令行进入mysql,然后用命令CREATE DATABASE mydb2;创建数据库mydb2。
2.退出mysql 可以输入命令exit;或者quit;
3.在CMD中输入下列命令:
c:\>mysql -h localhost -u root -p mydb2 < e:\mysql\mydb2.sql
然后输入密码,就OK了。
3.根据查询结果导出数据库数据
引言
最近在修改线上数据的时候,需要现将修改的数据继续备份,但是线上客户的服务器是不能直接连接,而是通过了一台堡垒机,这就说我们不能通过可视化客户端直接连接mysql的,所以所有的操作都是需要通过sql语句的,下面看一下导出的sql:
mysql> select count(1) from table into outfile '/tmp/test.xls';
直接在我们查询的结果后面增加 into outfile '路径即可',但是在开始的时候我后面添加的路径不是 /tmp 而是/data 这样执行以后抛出下面的错误:
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
这是因为mysql设置的权限,我们可以通过下面sql查看一下权限设置:
show variables like '%secure%';

导出的数据必须是这个值的指定路径才可以导出,默认有可能是NULL就代表禁止导出,所以需要设置一下;
我们需要在/etc/mysql/mysql.conf.d/mysqld.cnf 文件的末尾进行设置,在末尾添加一句secure_file_priv="/"即可将数据导出到任意目录;
secure_file_priv
1、限制mysqld 不允许导入 | 导出
secure_file_prive=null
2、限制mysqld 的导入 | 导出 只能发生在/tmp/目录下
secure_file_priv=/tmp/
3、不对mysqld 的导入 | 导出做限制
secure_file_priv
4、可以导出至任意目录
secure_file_priv="/"
这样设置以后我们就可以,实现我们一些自定义的的导出了!
导出mysql数据库数据的更多相关文章
- mysqldump导入导出mysql数据库
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- MySQL数据库数据存放位置修改
MySQL数据库数据存放位置修改 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方 ...
- 在Linux环境下,将Solr部署到tomcat7中,导入Mysql数据库数据, 定时更新索引
什么是solr solr是基于Lucene的全文搜索服务器,对Lucene进行了扩展优化. 准备工作 首先,去下载以下软件包: JDK8:jdk-8u60-linux-x64.tar.gz TOMCA ...
- NodeJs之EXCEL文件导入导出MongoDB数据库数据
NodeJs之EXCEL文件导入导出MongoDB数据库数据 一,介绍与需求 1.1,介绍 (1),node-xlsx : 基于Node.js解析excel文件数据及生成excel文件. (2),ex ...
- Ubuntu上更改MySQL数据库数据存储目录
之前写过一篇博客"MySQL更改数据库数据存储目录",当时的测试环境是RHEL和CentOS,谁想最近在Ubuntu下面更改MySQL数据库数据存储目录时遇到了之前未遇到的问题,之 ...
- mysql数据库数据(字段数过大)太多导入不了的解决方法
mysql数据库数据(字段数过大)太多导入不了的决方法: 1.打开navicat 工具 2.在数据库上右键,执行右键菜单命令“命令列界面” 3.在打开的窗口中,运行set global max_all ...
- 用mysql workbench导出mysql数据库关系图
用mysql workbench导出mysql数据库关系图 1. 打开mysql workbench,选择首页中间"Data Modeling"下方的第二栏"Create ...
- 两台Mysql数据库数据同步实现
两台Mysql数据库数据同步实现 做开发的时候要做Mysql的数据库同步,两台安装一样的系统,都是FreeBSD5.4,安装了Apache 2.0.55和PHP 4.4.0,Mysql的版本是4.1. ...
- mysql 数据库数据订正
mysql 数据库数据订正 http://blog.itpub.net/22664653/viewspace-717175/ 工作过程中时常遇到数据订正的需求,该操作本身不难.操作时要求能够保持回滚~ ...
随机推荐
- 转载->CPU的内部架构和工作原理
CPU的内部架构和工作原理 本片博客转自:http://www.cnblogs.com/onepixel/p/8724526.html 感谢博主分享! 内部架构 CPU 的根本任务就是执行指令,对计 ...
- H - Being a Good Boy in Spring Festival
一年在外 父母时刻牵挂 春节回家 你能做几天好孩子吗 寒假里尝试做做下面的事情吧 陪妈妈逛一次菜场 悄悄给爸爸买个小礼物 主动地 强烈地 要求洗一次碗 某一天早起 给爸妈用心地做回早餐 如果愿意 你还 ...
- [Asp.net]缓存简介
写在前面 针对一些经常访问而很少改变的数据,使用缓存,可以提高性能.缓存是一种用空间换取时间的技术,说的直白点就是,第一次访问从数据库中读取数据,然后将这些数据存在一个地方,比如内存,硬盘中,再次访问 ...
- python如何去掉字符串‘\xa0’
发现问题: 最近在用爬虫爬取网页信息时,在网页源码中遇到了“ "字符串,经查阅,发现该字符是不间断空格符.我们通常所用的空格是 \x20 ,是在标准ASCII可见字符 0x2 ...
- ABP之事件总线(4)
在上一篇的随笔中,我们已经初步完成了EventBus,但是EventBus中还有诸多的问题存在,那么到底有什么问题呢,接下来我们需要看一看ABP中的源码是如何定义EventBus的. 1.第一个点 在 ...
- 好用的 Chrome 插件,提升你的学习工作效率
Google Chrome 应该是大部分人都用的一款浏览器,但却有很少人会注意到它丰富的扩展插件,擅于使用这些插件,能让自己的工作效率大大提高,今天趁着周末休息,就不谈技术伤大家的脑细胞了,给大家分享 ...
- GIAC深圳站 | 2018年不可错过的全球互联网架构大会!
2018年6月1~2日,GIAC 全球互联网架构大会将于深圳华侨城洲际酒店举行!GIAC全球互联网架构大会是由msup和高可用架构技术社区联合举办的面向架构师.技术负责人及高端技术从业人员的技术架构大 ...
- ORM 简介 单表操作
cls超 Django基础五之django模型层(一)单表操作 本节目录 一 ORM简介 二 单表操作 三xxx 一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型 ...
- stm32 硬件错误
进入该模式,程序死机. 一般来说都是内存错误 1. 数组越界,装入数据溢出, 2. 堆和栈设置不当,这里面硬件的堆和栈在汇编文件中,如果有freertos等,重点检查,任务堆栈使用情况,一般任务堆栈溢 ...
- centos7配置vsftpd
ftp服务器192.168.1.198 1.关闭selinux.关闭防火墙 2.yum -y install vsftpd* 3.开启服务,通过浏览器访问ftp://192.168.1.198,匿名用 ...