TypeCodes

使用shell脚本导出MySql查询的月表数据到EXCEL中

经常会踫到这样的场景需求:自定义时间从MySql流水月表中SELECT出来数据到excel报表文件中,所以自己写了这个shell脚本来处理。

1 实现思路

代码比较简单,主要使用了mysql -e执行SQL语句,然后重定向到txt文件中。由于linux默认是uft-8的格式,所以在使用awk命令处理完txt文件后,通过 …

- 阅读剩余部分 -

使用shell脚本批量插入数据到MySQL中

经常会踫到这样的场景需求:批量向MySQL数据库插入数据,显然手工INSERT成千上万条数据是不现实的,所以自己写了这个shell脚本来处理。

1 具体需求

shell脚本批量插入10万条数据到MySQL中,其中对应表唯一索引是用户uid。因此在程序循环1万次数时,每次都使uid自增1就行了。

使用shell脚本批量插入数据到MySQL中

2 脚本代码

鉴于数据量比较大,我们的shell脚本需要考虑MySQL执行INSERT …

- 阅读剩余部分 -

MySQL5.7中使用GROUP_CONCAT数据被截断的问题

前天在生产环境中遇到一个问题:使用GROUP_CONCAT函数select出来的数据被截断了,最长长度不超过1024字节,开始还以为是navicat客户端自身对字段长度做了限制的问题。后面故意重新INSERT了一个字段长度超1024字节的数据,但是navicat能完整展示出来,所以就排除了navicat的问题。

然后想到1024这个熟悉的数字,会不会是C++框架在接收MySQL通过socket传输过来的数据时被处理了呢?于是手工在日志中打印这个字段,发现即使数据长度超过1024字节仍然是可以完整显示的。

1 查找原因

至此,只能从SQL语句出发了。网上搜了下GROUP_CONCAT …

- 阅读剩余部分 -

使用shell脚本解决Navicat导出excel数据不全的问题

月末需要对系统注册用户进行报表统计,在使用Navicat从MySQL数据库中导出数据到excel文件时,发现最大只能导出为65536(美好的数字)行的数据。按理说 Navicat应该是从数据库中读取一条记录会立即写到excel文件中,不应该只读取65536范围内的数据然后一次性写到文件里面。

1 问题转换

鉴于Navicat的限制,只能想想其它办法了,这里选择使用shell脚本来处理。如下图所示,在Navicat中对select出来的数据右键,然后选择复制为-制表符分隔值(字段名和数据)把select出来的数据粘贴到任意文本文档中 …

- 阅读剩余部分 -

Linux C++简单实现一个批量插入的sql脚本生成工具

之前项目上隔三差五地要手工批量导入一些数据,于是自己用C++写了这个sql脚本文件的生成工具。

Linux C++简单实现一个批量插入的sql脚本生成工具

1 需求说明

批量插入多个用户收费信息,也就是用户id不同,但是包括所属区域代号、收费模式和费率值等数据是相同的。如果使用手工拼接insert语句工作量很大,而且可能出现差错,所以改用程序来生成。

只需要配置好相关参数,然后直接执行程序就可以把生成的sql脚本交给DBA处理了。

2 C++程序

代码比较简单,从main函数中可以看出主要流程是先读取配置文件(见小节3 …

- 阅读剩余部分 -

Linux c语言连接MySQL数据库实例

工作上自己在Linux C/C++开发时,用的都是Oracle数据库,毕竟企业级应用追求稳定性好、安全可靠。业余时间做了一些WEB开发,接触到MySQL数据库比较多,也比较喜欢开源的MySQL。之前都是用PHP连接MySQL数据库,这里自己用C语言连接MySQL,执行一些简单的连接、查询操作、异常处理等操作。

1 测试程序

代码比较简单,先把MySQL数据库安装后得到的头文件mysql …

- 阅读剩余部分 -

Linux下Nginx、MySQL和PHP等应用的日志切割脚本

在Linux中如果应用程序会产生日志,那么就需要考虑日志切割,例如按照固定的大小切割、按照日期进行切割等等。同样,在编译Nginx1.9.0MySQL5.7.7rcPHP7后,这三个应用服务都会产生日志,尤其是Nginx进程根据配置文件ngnix.conf记录每条访问记录到access.log中。如果所有的日志都打印到同一个文件中的话 …

- 阅读剩余部分 -