自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蛙鳜鸡鹳狸猿

喜欢我就进入豆瓣日记扫码打赏我吧 https://www.douban.com/note/768781466/

  • 博客(157)
  • 资源 (6)
  • 收藏
  • 关注

原创 MySQL隐形的磁盘吞食兽——生成临时表的查询

我们的潜意识里,数据库对磁盘的消耗肯定是以INSERT、UPDATE等为首的相关DML引起的。这属于常规的显性的情况。与此同时,在执行一些复杂SELECT性质(包含需要进行查询的DML)的查询时,MySQL会将中间结果集缓存到一张张临时表中。这些临时表原始是内存临时表(in-memory temporary table),当其大小超过一定阈值(tmp_table_size)后,MySQL会直接将其转存为磁盘实体表(on-disk table),这就是由查询产生的潜在的磁盘消耗的内部机制。

2022-11-18 17:17:14 933 3

原创 JAVA MyBatis读取MySQL UNSIGNED ZEROFILL左侧零丢失修复笔记

项目中开发同学反映从MySQL中查询到的UNSIGNED ZEROFILL整型定义的字段值,前面自动补全的“0”都丢失了。经研究从MySQL8.0.17版本开始移除了ZEROFILL修饰语。新版的MyBatis也紧跟MySQL的release,不再支持对UNSIGNED ZEROFILL整型字段的有效查询。As of MySQL 8.0.17, the UNSIGNED attribute is deprecated for columns of type FLOAT, DOUBLE, and

2020-11-27 19:26:15 1066

原创 Shell调用ImageMagick转换图片格式属性以与JAVA兼容

JAVA的图形IO原生并不兼容colour space属性为"CMYK",color profile cii为"Japan Color 2001 Coated"格式的文件。此类图片在没有兼容性处理的JAVA程序中直接上传下载都会报错。以下Shell脚本借助`ImageMagick'开源库,将图片属性转换成兼容的"sRGB",以防止图片文件在JAVA程序中的传输报错。#!/usr/bin/env bash# author : 蛙鳜鸡鹳狸猿# create_ts : 2020-07-01# p

2020-10-24 21:44:37 557

原创 PostgreSQL设置自增主键和定义字段按时区自动写入记录插入时间

自增主键和额外的用于记录行插入时的时间戳的字段,在关系型数据库表设计时算是两个很常规的字段了。之前一直用MySQL,定义起来很简单。近来接触PostgreSQL,其字段定义跟MySQL还是有区别的,这里记录一下PG的DDL写法。CREATE TABLE "public"."my_pg_table" ( "id" BIGSERIAL NOT NULL, "content" VARCHAR NULL DEFAULT NULL, "yesterday" DATE NOT NULL DEFAULT DA

2020-09-09 18:30:35 1884

原创 Ubuntu Linux红色警戒Read Alert官方开源版OpenRA安装笔记

①下载安装包下载地址为https://www.openra.net/download/,点击下载对应的Linux版本,下载的文件例如:zoo@zoo:~/App$ lsOpenRA-Red-Alert-x86_64.AppImage②添加可执行权限sudo chmod a+x OpenRA-Red-Alert-x86_64.AppImage③安装系统依赖sudo apt install mono-complete④启动游戏./OpenRA-Red-Alert-x86

2020-08-10 22:24:41 6968

原创 介绍几款实用的MySQL和数据库Web客户端

1.Chrome MySQL Admin2.OmniDB3.phpMyAdmin在“客户端-服务器”的“cs模式”里浏览器应该算是最流行的客户端了,所以使用浏览器访问服务端是最便利的方式。大的公司以及注重信息安全的组织都会严格控制员工安置和使用各种客户端软件程序,这种时候,完全兼容的浏览器甚至可能成为唯一可用的客户端工具。这也成为Web客户端的生命力。下文安利几个实际工作中用到的MySQL数据库的Web客户端访问程序。1.Chrome MySQL Adminhttps://www.e.

2020-07-15 14:53:10 6567

原创 Linux系统PostgreSQL源码编译安装笔记【CentOS & Ubuntu篇】

操作系统: CentOS 7 Ubuntu 18.04安装版本: PostgreSQL 12.3 (当前最新版)内容提要: 1.在CentOS和Ubuntu两种主流Linux分支上源码编译安装PostgreSQL 2.添加postgresql服务到Linux系统service以开机自启动(/etc/init.d) 3.设置PostgreSQL默认超级账户`postgres'密码并开启远程访问1.安装依赖CentOS系统yum ...

2020-07-15 10:14:23 670

原创 从MySQL表中计算财务数据保留小数位以及保留或省略小数位00的SQL写法

从MySQL表中查询财务数据时经常需要计算金钱字段,对于不同的数据会遇到不同的处理要求,这边遇到的情况包括:遇到NULL值返回0 计算结果永远保留两位小数(包括.00) 如果可以整除的话计算结果省略小数位(不包括.00)以下写法作为参考。SELECT /* if record is NULL return 0 ; else return decimal of record / 100 with suffix precision remaining (eg: record 100 ret

2020-07-02 11:12:41 1252

原创 从MySQL表中查询前一个月记录的SQL写法

关系型数据库在设计表的时候一般都会在业务表中定义一个‘YYYY-MM-DD HH:MM:SS’格式的DATETIME或TIMESTAMP(为了系统向后兼容一般现在很少使用TIMESTAMP了)型字段来存储该条记录写入数据库时的时间。以下示例为获取表中前一个月记录的DQL写法。SELECT t.*FROM `table` AS tWHERE YEAR(t.`datetime_column`) = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))AND MONT

2020-07-01 11:00:19 1504

原创 Ubuntu无线WI-FI网络慢经常连接超时connection timed out修复笔记

本地在由Ubuntu18.04升级到20.04后WI-FI无线网络出现了肉眼可见的网络慢,浏览器打开网页时经常超时connection has timed out,看视频时也一直卡着转圈。本来以为是操作系统版本升级引起的,上网查了一下才发现原来Ubuntu无线网络慢这个问题在各个版本都有,找到的处理方式也五花八门,主要包括修改无线网络iwlwifi配置文件和修改netplan网络配置文件。但试过之后都没有显著效果。最后自己尝试之下,找到的解决方式是在软件&更新(Software &

2020-06-30 11:34:32 2085

原创 Ubuntu找不到Wi-Fi适配器No Wi-Fi Adapter Found修复笔记

本地是在Ubuntu18.04升级到20.04之前误操作导致的,结果是Wi-Fi故障无法使用网络。其中:设置(Settings)的Wi-Fi窗口显示找不到Wi-Fi适配器(No Wi-Fi Adapter Found)与此同时蓝牙(Bluetooth)也无法使用;软件&更新(Software & Updates)的附加驱动(Additional Drivers)窗口中的其他网络驱动也不可用,因为切换其他驱动需要联网下载驱动文件。网上找到很多解决方式,绝大多数都建立在主机可以网络通信的基础

2020-06-30 11:34:14 12639

原创 Shell脚本中使用alias设置的别名命令

用`alias`命令设置的别名命令在终端命令行可以直接敲,但是在shell脚本中默认是无法直接使用的,需要先开启`expand_aliases`选项才行。具体做法是在shell脚本中加入以下内容:#!/usr/bin/env bashshopt -s expand_aliasessource ~/.bash_profile其中`shopt`命令是“shell options”的缩写,用来开关shell中的选项;开启`expand_aliases`之后`source`命令重新读取和执行记录了

2020-05-21 00:30:33 2324

原创 Python写出Excel文件数字类型变科学计数法以及精度丢失尾数变成0修复笔记

Python的int型写入Excel时会有两种潜在问题(参考https://support.office.com/en-us/article/display-numbers-in-scientific-exponential-notation-f85a96c0-18a1-4249-81c3-e934cd2aae25?ui=en-US&rs=en-US&ad=US):数字长度超过...

2020-04-27 21:51:42 5486

原创 Python调用_mysql_connector报错“MySQLInterfaceError: Lost connection to MySQL server during query”修复笔记

背景:帮产品写一个类OLAP的报表脚本。场景:Python连接业务库MySQL读取原始数据并计算后将结果写入新的报表库MySQL。问题:DQL和DDL手动执行都没有任何问题但是放到Python脚本中跑一段时间后会报错。Python的Traceback报错信息_mysql_connector.MySQLInterfaceError: Lost connection to MySQL...

2020-03-31 01:42:05 1528

原创 Ubuntu Linux系统VLC media player中文字幕文件挂载乱码修复笔记

安装默认的字幕语言编码是“ Windows-1252 ”,Ubuntu系统上挂载中文字幕文件(.srt文件)会乱码,需要修改成Unix / Linux系统的中文编码。修改入口为:Tools ->> Preferences ->> Subtitles / OSD ->> Default encoding。点击下拉框,选择” Simplified Chinese...

2020-02-24 00:31:28 14001

原创 MySQL安装初始化必须要指定的参数innodb-data-file-path和innodb-log-files-in-group

源码编译安装或者解压linux-glibc压缩包安装MySQL,在启动MySQL实例前,都有一步初始化mysqld server的过程,即“mysql/bin/mysqld --initialize ”,除了“initialize”选项,还可以制定很多其他各种参数,参考https://dev.mysql.com/doc/refman/5.7/en/server-system-variables....

2020-01-31 22:11:43 2286

原创 Shell脚本:从包含一堆文本文件的目录中找出包含某关键字的文件

#!/usr/bin/env bash# Author : 蛙鳜鸡鹳狸猿# create_ts : 2019-11-11# program : Search obj among docs under a directoryfunction search_obj_among_docs() { # Search obj among docs under a direct...

2019-12-31 00:48:36 1349

原创 Shell防止执行程序被多重启动

在Linux服务器上部署的脚本程序,有些需要做到防止多重启动(prevent multi-processing)。主要见于:串行batch 频繁的crontab定时任务 单进程设计的程序遇到这种需要防止多重启动的情况时,可以简单地修改一下脚本的调用执行方式。比如有一个“batch.py ”Python脚本,常规执行方式如下:/usr/bin/env python batch.py...

2019-11-18 22:32:06 600

原创 Shell将后台运行程序的进程ID写入PID文件以优雅地启动和关闭后台服务

工作中经常需要部署一些脚本程序,这些程序很多需要运行很长时间。而有的监控脚本甚至被设计成守护进程(deamon),在服务器上每天24小时不遗余力地工作。这些程序的启动和终止就需要花一些功夫了。刚开始的手段比较原始和残暴:启动的时候往往使用nohup让其在后台静默运行;终止的时候就去进程列表里面找到进程ID然后直接kill掉。这种方式虽然也能达到效果,但命令行操作相对较多不利于管理维护,而且不显...

2019-10-13 23:55:25 5427

原创 MySQL全文检索fulltext和中日韩文解析插件ngram使用笔记

项目数据库中遇到一个情况,有一个字段存储的是经销厂商在工商局注册时的(官方)全称,但是用户在查询这个字段时,很多时候都会使用到各种各样的简称别称。于是,对于该字段,希望能够实现类似于搜索引擎的查询。就像数据库里面存的是“Дд中Ж华Ж人Ж民Ж共Ж和Ж国Дд”,但希望是只要用户输入“Дд中Ж国Дд”、“Дд中Ж华Дд”、“Дд民Ж国Дд”、“Дд中Ж华Ж民Ж国Дд”等关键字,最终都能定位到“中华人民共...

2019-10-11 12:46:37 6986

原创 批量修改亚马逊AWS相关service访问控制和安全组白名单IP设置Python脚本

目前工作中需要维护包括亚马逊AWS、阿里云Alibaba Cloud和微软云Microsoft Azure在内的云平台服务设施。关于白名单组IP地址切换(旧的IP换成新的IP)的工作是分云平台进行的,刚开始独立写每个云平台的脚本,后来因为常用就整合在了一起。参考GitHub上的完整代码:https://github.com/Bilery-Zoo/Cloud_Platform_Maintenance...

2019-09-16 00:36:27 2007

原创 Boot引导U盘安装Ubuntu18.04笔记(附每步详细图片)

1.电源开机然后选择引导媒介我的神船小破本快捷键是F7,到了引导界面后按F7键待高亮后稍等即可。不同电脑快捷键可能会不尽相同,在开机界面按照提示操作就行了。请忽略显示器正中间的一条坏线,没钱更换屏幕啊。2.在Boot媒介选择列表选择U盘我是把Ubuntu18.04的ISO镜像文件写入到一个金士顿U盘里的。3.进入Ubuntu安装界面选择“Install Ubunt...

2019-09-08 15:36:40 946

原创 批量修改AlibabaCloud阿里云service访问控制和安全组白名单IP设置Python脚本

更新一:下文脚本已经重写并分享到GitHub,而且新的脚本同时集成了亚马逊AWS的相关操作实现,参考https://github.com/Bilery-Zoo/Cloud_Platform_Maintenance/tree/master/CloudPlatform_WhitelistIP_Switcher。而亚马逊AWS单独实现的脚本,也可以参考之后的博文https://blog.csdn.n...

2019-08-31 16:06:01 1427

原创 Ubuntu设置关机重启快捷键

任何操作系统常规情况下都不会设置关机和重启快捷键,这也是一种基本的安全策略。试想一下你的小队伍正在对BOSS疯狂地DPS,残血之际你菊花一紧麒麟臂一抖按错键,然后“哗———”地一下电脑关机/重启了,该是多么蛋疼的事情。但快捷键的设计思想就是为了方便操作,鼠标点吧半天或者输入半天指令才能做到的事情,轻轻按一下定义好的组合键就能实现,岂不美哉。所以安全和便利都是需要考虑的事情,很多系统为了二者兼顾...

2019-07-27 13:14:09 3945

原创 一个执行MySQL常规读写操作的Python脚本

应用层面对数据库的操作集中在读和写上面,具体可以主要细分为以下三个常规需求。①写(DDL、DML):不需要实际返回值(非程序退出码的查询结果集)②读(DQL):需要返回查询结果集(或None)③读(DQL):虽然也关注查询结果,但只关注查询结果的布尔(bool)性,即判断是否存在。本脚本主要就是为了实现MySQL / MariaDB这三方面的操作需求,同时做了一些额外但常规的封...

2019-07-16 01:50:28 325

原创 Ubuntu Linux系统MySQL8.0源码编译安装笔记

①安装依赖个人本地操作系统为Ubuntu18.04LTS,编译安装需要以下依赖。apt install build-essential cmake bison libncurses5-dev libssl-dev pkg-config详细依赖列表参考https://dev.mysql.com/doc/refman/8.0/en/source-installation.html。如果有...

2019-06-09 19:56:11 7230

原创 Shell脚本:递归目录下所有文件由DOS/Windows格式转换为Unix/Linux格式

#!/usr/bin/env bash# Author : 蛙鳜鸡鹳狸猿# create_ts : 2019-06-06# program : Convert DOS/Mac text file format into Unixfunction dos_to_unix() { # Convert DOS/Mac text file format into Unix ...

2019-06-09 19:55:09 3615 2

原创 Shell脚本:根据文件名中日期时间字符筛选过期文件

log文件的文件名中带上其生成的时间日期是很常见的设计,经常需要以一定的时间阈值(threshold)来对一些旧日志文件做一些处理。如果是按天数为单位处理,也可以借助`find`命令(-mtime),但细粒度的时间处理,就得手动从log文件名中提取时间日期数据然后再做过滤操作。#!/usr/bin/env bash# Author : 蛙鳜鸡鹳狸猿# create_ts : 201...

2019-06-09 19:54:14 3645

原创 Python查询MySQL结果并以dict / JSON格式返回

Python内部以tuple格式实现关系型数据库的查询结果。但在程序与程序、接口与接口之间,dict或者JSON格式更加方便和通用一点,所以从数据库中查询到的结果往往需要转换一下。这就包括两种手段:一种手段是将tuple中的每个记录值与其对应的字段名zip一下,然后构造成dict(https://dev.mysql.com/doc/connector-python/en/connector-pyt...

2019-06-09 19:53:10 4330 2

原创 Ubuntu18.04关闭手机U盘插入后自动弹出

明年(2020)年元月后Windows7就终止支持了。近来一狠心,终于将自己电脑的宿主操作系统换成了Ubuntu(18.04)。因为工作中基本上一直在用,所以这次系统切换还算是平稳的过渡。本篇记录一下关闭手机 / U盘等介质插入电脑时自动弹出提示框的方法:设置 --》设备 --》可移动介质 --》介质插入时从不提示或启动程序(勾选前面的复选框)。...

2019-05-12 22:50:12 1628 5

原创 Python检查写入MySQL的数据是否符合字段的数据类型定义

MySQL等传统数据库都有字段数据类型定义的设计。定义好字段类型以后,往字段里面插入/更新的数据,就要复合其数据类型的定义了,不然会写入报错。程序中往数据库里写入数据的时候,为了避免写入错误的发生,往往在写入之前需要判断一下写入数据是否复合数据库定义。以下是自己写的MySQL / MariaDB中一些主要的常规数据类型的Python检查。#!/usr/bin/env python3# -*...

2019-05-11 18:06:38 671

原创 Ubuntu Linux系统Google日语输入法跨平台版Mozc安装笔记

工作生活中需要用到日语输入法,Mozc是Google日语输入法的跨平台开源版本,https://github.com/google/mozc。Ubuntu18.04默认输入法管理器是IBus,但因为首先还是需要使用汉语输入法,安装了搜狗输入法Linux版后,就切换使用Fcitx输入法管理器了。所以,就把IBus卸掉了。apt remove --purge ibus*apt autoremo...

2019-05-07 22:25:52 5546

原创 Ubuntu系统百度网盘(官方Linux版)安装笔记

6月14号百度官方正式发布了百度网盘Linux版,所以可以像搜狗输入法、网易云音乐等其他国内用户习惯用的软件一样,直接下载使用官方版本了。下载地址为http://pan.baidu.com/download,然后根据系统软件包下载即可(这里建议阅读以下下文的“更新二”部分增加使用体验)。我本地为Ubuntu18.04,以下两条命令即可:wget http://issuecdn.b...

2019-05-06 22:42:04 2573 4

原创 Ubuntu Linux系统MariaDB10.3源码编译安装笔记

MySQL和MariaDB可算是真正的亲姐妹,二者分别取名自“MySQL之父”Michael Widenius(江湖上称作Monty)的大女儿My Widenius(与前妻所生)和小女儿Maria Widenius(与现任妻子所生)。Oracle收购Sun公司后,之前被Monty卖给Sun的MySQL也被Oracle继承了。Oracle是世界上最大的商业数据库厂商,因为担心Oracle独裁MySQ...

2019-04-28 19:48:50 1792

原创 Python生成随机字符串和hash加密

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""create_author : 蛙鳜鸡鹳狸猿create_time : 2019-03-28program : *_* symbol(secret key and hash code) generation handler *_*"""import timeim...

2019-03-29 22:24:14 2033

原创 Python读取tsv文件数据

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""create_author : 蛙鳜鸡鹳狸猿create_time : 2019-03-19program : *_* .tsv file handler *_*"""import codecsclass TSV(object): """ .t...

2019-03-25 21:56:11 10439 3

原创 一个定义Python程序日志记录和异常捕捉装饰器函数的简单模块

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""create_author : 蛙鳜鸡鹳狸猿create_time : 2019-03-20program : *_* log logging handler *_*"""import sysimport loggingimport functoolsc...

2019-03-24 01:04:44 360

原创 Python抓取收件箱邮件写入MySQL数据库小脚本

# !/usr/bin/python3# -*- coding: utf-8 -*-"""create_author : 蛙鳜鸡鹳狸猿create_time : 2019-01-21program : *_* mail handler *_*"""import osimport reimport sysimport poplibimport char...

2019-03-16 22:16:38 1009

原创 Ubuntu Linux环境Docker CE安装笔记

①卸载可能的操作系统预安装旧版本Docker我的Ubuntu 18.04(LTS)环境是没有预装的,但还是按照官方手册执行一下吧。apt-get remove docker docker-engine docker.io containerd runc②添加Docker的apt源apt-get updateapt-get install apt-transport-https...

2019-02-15 18:22:37 886

原创 Linux lampp/xampp环境Elasticsearch-PHP安装笔记

①检查依赖本地是Ubuntu18.04环境,简易安装的lampp环境。Elasticsearch-PHP依赖于PHP7,先查看一下lampp自带的PHP版本。root@ubuntu:~# whereis phpphp: /opt/lampp/bin/phproot@ubuntu:~# ls -l /opt/lampp/bin/ | grep php-rwxr-xr-x 1 root...

2019-01-17 16:30:06 398

What Is New in MySQL 5.7之新特性篇

What Is New in MySQL 5.7之新特性篇

2017-05-31

【EXPLAIN】“type”字段详解之MySQL官方文档翻译

【EXPLAIN】“type”字段详解之MySQL官方文档翻译

2016-10-14

使用之MySQL官方文档翻译

使用之MySQL官方文档翻译

2016-10-07

【SUBSTRING_INDEX】MySQL官方示例

【SUBSTRING_INDEX】MySQL官方示例

2016-10-01

【GROUP_CONCAT】使用之MySQL官方文档翻译

【GROUP_CONCAT】使用之MySQL官方文档翻译

2016-10-01

【DISTINCT】优化之MySQL官方文档翻译

【DISTINCT】优化之MySQL官方文档翻译

2016-10-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除