MySQL 源码阅读 —— 问题 expanded from macro MYSQL_VERSION_MAJOR

2021-09-08
阅读 3 分钟
4.5k
问题描述在执行 make 构建时可能会报错 {代码...} 原因排查通过 Homebrew 的 mysql@5.7.rb,找到了一个 PATCH。在 MySQL 的 Commit 记录 Bug #31466846 RENAME THE VERSION FILE TO MYSQL_VERSION 找到了答案: {代码...} 大概意思是:version 是 C++11 的一个头文件,但 MySQL 以往都是用 VERSION 表示的版本号,在引入...

MySQL 源码阅读 —— macOS CLion 编译调试 MySQL 5.7

2021-09-07
阅读 9 分钟
6.5k
macOS + VSCode 版本看这里环境信息macOS Big Sur 11.5.2CLion 2021.2MySQL 5.7.35CMake 3.21.1openssl 1.1下载源码从官网下载携带 boost 版本源码下载链接:[链接]也可以从 GitHub 上克隆代码,切换到指定 TAG 或分支。Patch 源码如果 MySQL <= 8.0.21,则需要执行以下脚本 Patch 源码: {代码...} 具体原因,可参考...

MySQL 慢查询 —— 值类型与字段类型不一致的隐式转换

2021-08-24
阅读 2 分钟
4.5k
示例慢 SQL {代码...} 场景上下文数据表结构现状为减少阅读干扰,已去除与本案例无关的字段及索引定义 {代码...} 原因分析慢SQL的EXPLAIN表中存在索引 idx_outer_id_type_id(outer_task_id,task_type_id)。字段定义 outer_task_id varchar(64) NOT NULL DEFAULT ''。字段类型为字符串,但查询条件的值为整型,导致 MySQL...

MySQL 全局配置 --secure-file-priv

2021-08-20
阅读 2 分钟
5.9k
MySQL 全局配置 --secure-file-priv一则问题在执行导出 INFORMATION_SCHEMA.OPTIMIZER_TRACE 内容到本地文件时: {代码...} 报错提示如下: {代码...} 原因分析查看系统变量 secure_file_priv: {代码...} MySQL 对于导入导出的目录是有限制的,只允许指定的目录才能导入导出。此处变量值为 NULL,即没设置允许操作的目...

Go 语言规范 - 编码风格篇

2021-01-19
阅读 10 分钟
4.7k
当前版本: v1.0.20201106GitHub: shockerli/go-code-guide命名规则站在调用者的角度,包不是给你自己用的简洁、且见名知义采用通用、大众熟知的缩写命名。比如buf而不是bufio如果缩写的名字会产生歧义,则放弃或换个文件名整个应用或包的主入口文件应当是 main.go,或与应用名称简写相同。比如:spiker 包的主入口文件是...

Gin 框架绑定 JSON 参数使用 jsoniter

2020-08-12
阅读 4 分钟
8.7k
Gin 框架中,处理 JSON 格式的参数绑定时,默认采用的标准包 encoding/json,然而标准包不能满足我们的一些要求,比如兼容字符串整型、PHP空数组、时间格式等。

Go 挖坑指南: cannot take the address & cannot call pointer method

2019-12-05
阅读 3 分钟
12.3k
先看代码 {代码...} 输出结果 {代码...} 问题总结 假设 T 类型的方法上接收器既有 T 类型的,又有 *T 指针类型的,那么就不可以在不能寻址的 T 值上调用 *T 接收器的方法 &B{} 是指针,可寻址 B{} 是值,不可寻址 b := B{} b是变量,可寻址 延伸思考 Go 语言规范中规定了可寻址(addressable)对象的定义: For an ope...

Go 语言优秀资源整理,为项目落地加速🏃

2019-10-31
阅读 19 分钟
12.5k
Go 语言优秀资源整理,为项目落地加速🏃在 GitHub 上稳定更新,觉得不错请点个 Star ❤️如转载分享,请保留出处,谢谢 😆原文地址: [链接]GitHub: [链接]

PHP 实现字符串表达式计算

2019-09-08
阅读 5 分钟
2.5k
什么是字符串表达式?即,将我们常见的表达式文本写到了字符串中,如:"$age >= 20",$age 的值是动态的整型变量。什么是字符串表达式计算?即,我们需要一段程序来执行动态的表达式,如给定一个含表达式的字符串变量并计算其结果,而表达式字符串是动态的,比如为客户A执行的表达式是 $orderCount >= 10,而为客...

解决 Homebrew 安装软件下载失败

2019-08-20
阅读 25 分钟
16.1k
当我们使用 Homebrew 安装软件时,由于一些特殊原因会出现软件包下载失败的情况。这种还很常见,我们没法改变环境,但却可以取巧的解决,那就是利用 Homebrew 缓存的特性,手动预先下载软件。

你所不知的 PHP 断言(assert)

2019-06-02
阅读 4 分钟
4.5k
PHP 中的断言常用于调试,检查一个表达式或语句是否为 FALSE。本文带你重新认识 PHP assert() 函数的神(Qi)通(Yin)广(Ji)大(Qiao)。本文基于 PHP Version 7.1.28

替换 Docker 或 Laradock 中 Debian 系统镜像源解决软件安装问题

2019-05-09
阅读 3 分钟
5.4k
Docker Debian 镜像源替换 因多数默认的 Docker 镜像为国外的,而采用的镜像源也是国外的,故访问很慢,所以我们需要替换为国内的(比如阿里云或163等)。 163 - Debian Aliyun - Debian 注意: 不同版本的 Debian 镜像源地址不一样 Debian 7.x (wheezy) {代码...} Debian 8.x (jessie) {代码...} Debian 9.x (stretch) {...

PHP 算法 —— 快速排序

2019-03-31
阅读 2 分钟
3.2k
算法原理 下列动图来自@五分钟学算法,演示了快速排序算法的原理和步骤。 步骤: 从数组中选个基准值 将数组中大于基准值的放同一边、小于基准值的放另一边,基准值位于中间位置 递归的对分列两边的数组再排序 代码实现 {代码...} 测试代码: {代码...} 测试结果: {代码...} 时间复杂度 快速排序的时间复杂度在最坏情况下...

Go 包依赖管理工具 —— govendor

2019-03-25
阅读 4 分钟
6.6k
govendor 是一个基于 vendor 机制实现的 Go 包依赖管理命令行工具。与原生 vendor 无侵入性融合,也支持从其他依赖管理工具迁移,可以很方便的实现同一个包在不同项目中不同版本、以及无相互侵入的开发和管理。

搞懂 macOS 上的主机名/hostname/ComputerName

2019-03-05
阅读 4 分钟
6.1k
主机名/hostname/ComputerName 的含义 主机名、hostname 是一个东西,中英文而已,指的是你本地网络上的电脑可以通过主机名访问你的电脑。这个与 Linux 系统是一致的。 ComputerName,这个是 macOS 才有的东西。跟 Windows 上一样,表示的是电脑名称,给人看的。 可以从下图中看出来(系统偏好设置 > 共享): 155179...

一键解决 go get golang.org/x 包失败

2019-02-24
阅读 2 分钟
28.5k
当我们使用 go get、go install、go mod 等命令时,会自动下载相应的包或依赖包。但由于众所周知的原因,类似于 golang.org/x/... 的包会出现下载失败的情况。如下所示:

PHP 算法 —— 归并排序

2019-02-19
阅读 2 分钟
4.4k
算法原理 下列动图来自@五分钟学算法,演示了归并算法的原理和步骤。 原理: 利用递归,先拆分、后合并、再排序。 步骤: 均分数列为两个子数列 递归重复上一步骤,直到子数列只有一个元素 父数列合并两个子数列并排序,递归返回数列 代码实现 {代码...} 测试: {代码...} 时间复杂度 归并排序的时间复杂度是 O(N*lgN)。 假...

收藏了8年的PHP优秀资源,都给你整理好了

2019-01-30
阅读 9 分钟
20.9k
最后更新于 2020.02.06以下是我整理好的 PHP 资源,各位看官拿去用,不用再自己找了。 在 GitHub 上稳定更新,觉得不错请点个 Star ❤️ 如转载分享,请保留出处,谢谢 😆 原文地址: [链接] GitHub: [链接]

R 脚本读取汇总 Excel 表格数据

2019-01-25
阅读 4 分钟
2.2k
主要用到了 xlsx 和 rJava 包,打开 Excel 文件,读取各表格数据,再写入到汇总表。 下图为处理前的原始数据表格: 下图为处理后的数据: 代码实现 安装&加载包的函数实现。installed.packages() 函数获取所有已安装的包,用以排除已安装的包。install.packages() 函数安装指定的包。library() 加载引入包。 {代码.....

MySQL 函数 —— GROUP_CONCAT

2018-12-15
阅读 2 分钟
2.8k
GROUP_CONCAT 函数返回带有来自一个组的连接的非 NULL 值的字符串结果。该函数是一个增强的 Sybase SQL Anywhere 支持的基本 LIST() 函数。

lsyncd —— 多机器实时同步文件神器

2018-12-13
阅读 2 分钟
7.1k
lsyncd 是一个支持实时、双向、多机器的多模式文件同步工具。使用 Lua 语言封装了 inotify 和 rsync 工具,采用了 Linux 内核(2.6.13 及以后)里的 inotify 触发机制,然后通过 rsync 去差异同步,达到实时的效果。

gops —— Go 程序诊断分析工具

2018-10-18
阅读 7 分钟
3.9k
GitHub: [链接]一个用于列出和诊断分析系统中正在运行的 Go 程序的命令行工具 安装 {代码...} 命令帮助 执行 gops help 查看帮助文档: {代码...} 使用详解 为了能更好的分析程序,需要在我们的项目中加一行 agent 诊断分析代码,用于统计分析程序问题。 {代码...} 其中,agent. 支持更多的参数: {代码...} Addr可选。...

定时备份 MySQL 并上传到七牛

2018-10-10
阅读 3 分钟
5k
多数应用场景下,我们需要对重要数据进行备份、并放置到一个安全的地方,以备不时之需。常见的 MySQL 数据备份方式有,直接打包复制对应的数据库或表文件(物理备份)、mysqldump 全量逻辑备份、xtrabackup 增量逻辑备份等。 常见的数据存储方式有,本机存储、FTP 上传到远程服务器、云存储(如阿里云OSS、七牛云存储等)、...

Git 撤销所有未提交(Commit)的内容

2018-09-20
阅读 2 分钟
7.7k
撸了好多代码,但是突然设计改了(o(>_<)o );或者引入个第三方库,后来又发现用不着,想删掉,但文件太多了(比如几百个);那,怎么办呢,都不想了...Git 比人聪明,所以能很方便的帮我们解决问题。

一千行 MySQL 学习笔记,看完就会了

2018-08-22
阅读 24 分钟
2.6k
{代码...} 原文地址: [链接]更多文章请访问我的个人博客: [链接]

Go 标准库 http.FileServer 实现静态文件服务

2018-08-21
阅读 3 分钟
13.7k
http.FileServer 方法属于标准库 net/http,返回一个使用 FileSystem 接口 root 提供文件访问服务的 HTTP 处理器。可以方便的实现静态文件服务器。

Linux 命令 —— iconv 转换编码

2018-08-01
阅读 1 分钟
5.2k
iconv 是 Linux 系统自带的用于转换文件编码的命令行工具。 命令参数 使用 iconv --help 命令查看命令帮助信息: {代码...} 使用实例 查看支持的编码列表: {代码...} 转换文件内容编码 {代码...} 原文地址: [链接]更多文章请访问我的个人博客: [链接]

macOS 系统 .DS_Store 文件详解

2018-07-26
阅读 2 分钟
4.9k
.DS_Store 文件 .DS_Store 是 Finder 用来存储这个文件夹的显示属性的:比如文件图标的摆放位置。 显示/隐藏 Mac 隐藏文件 显示:defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏:defaults write com.apple.finder AppleShowAllFiles -bool false 删除 .DS_Store 文件 find /path/to/files -name "...

史上最全的 Python 3 类型转换指南

2018-07-23
阅读 5 分钟
4.3k
int 支持转换为 int 类型的,仅有 float、str、bytes,其他类型均不支持。 float -> int 会去掉小数点及后面的数值,仅保留整数部分。 {代码...} str -> int 如果字符串中有数字(0-9)和正负号(+/-)以外的字符,就会报错。 {代码...} bytes -> int 如果 bytes 中有数字(0-9)和正负号(+/-)以外的字符,就会报错。...

Python 3 进阶 —— print 打印和输出

2018-07-23
阅读 2 分钟
2.6k
在 Python 中,print 可以打印所有变量数据,包括自定义类型。在 2.x 版本中,print 是个语句,但在 3.x 中却是个内置函数,并且拥有更丰富的功能。