昨晚我正在床上睡得着着的,突然来了一条短信. 什么?线上的订单无法取消! 我赶紧登录线上系统,查看业务日志. 发现有MySQL锁超时的错误日志. 不用想,肯定有另一个事务正在修改这条订单,持有这条订单的锁. 导致当前事务获取不到锁,一直等待,直到超过锁超时时间,然后报错. 既然问题已经清楚了,接下来就轮到怎么排查一下到底是哪个事务正在持有这条订单的锁. 好在MySQL提供了丰富的工具,帮助我们排查锁竞争问题. 现场复现一个这个问题: 创建一张用户表,造点数据: CREATE TABLE `use…
1. 慢查询日志的作用 慢查询日志默认不开启,建议手动开启,方便我们定位线上问题. 执行时间超过阈值的SQL会被写入到慢查询日志当中,这样可以帮助我们记录执行时间过长的SQL语句,定位线上慢SQL问题,方便我们进行SQL性能调优. 2. 慢查询日志的配置 2.1 查看是否开启了慢查询日志 show variables like 'slow_query_log'; 默认是OFF,不开启,可以手动开启. 2.2 开启慢查询日志 一种方法是可以使用MySQL命令开启: set global slow_…
手把手教你在Ubuntu上分别安装Nginx.PHP和Mysql…
前言 前面一篇文章介绍了Travis自动部署Hexo的常规使用教程,也是个人比较推荐的方法. 前文最后也提到了在Windows系统中可能会有一些小问题,为了在Windows系统中也可以实现使用Travis自动部署Hexo,本文介绍另外一种方式来实现. 是通过GitHub API来实现的,用到了Linux中的sed命令. 新建Access Token Personal Access Token是用于操作repo的口令. 点击用户图像,然后点击Settings(设置)选项. 进入设置面板后,点击左侧…
前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文章会非常不方便. 是因为hexo使用的部署命令是把生成好的静态文件上传到仓库中的,所以,在其他电脑上同步下来的只是静态文件而已,不是源码. 到这里就会想到能不能这样:将源码同步到远程仓库后,可以实现自动生成部署呢? 答案是肯定的,可以通过Travis CI来实现. 那么,本文就介绍一下Travis…
前言 前文手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置介绍了github注册.git相关设置以及hexo基本操作. 本文主要介绍一下hexo的常用参数设置. 配置文件说明 网站配置文件是在根目录下的**_config.yml文件,是yaml格式的. 所有的配置项后面的冒号(:)与值之间要有一个空格.** 官方配置文件说明 # Hexo Configuration ## Docs: https://hexo.io/docs/configuration.h…
前言 有朋友问了我关于博客系统搭建相关的问题,由于是做开发相关的工作,我给他推荐的是使用github的gh-pages服务搭建个人博客. 推荐理由: 免费:github提供gh-pages服务是免费的,有300MB空间: 开源:由于github开源的原因,有很多人参与其中,自然技术支持很好. 便捷:博客完全托管在github上,基本上不需要花时间去管理,博客使用Markdown语法,上手很容易. 需要了解的内容(能掌握更好): html+css+javascript git基本语法 markdo…
手把手教你MyEclipseUML建模(上) 转 https://blog.csdn.net/qq_37939251/article/details/83444359 1.用UML 1建模 MyEclipse提供了以下UML 1特性: UML图:用例.类.序列.协作.状态.活动.部署 集成图表编辑器.大纲视图和属性视图 UML透视图 自由图形绘图工具 通过热点区域直接编辑节点和连接细节 存储在UML模型存储库文件中的图表(例如,cardemo.umr) 对可能包含UML模型存储库文件的位置或项目…
对一个别人正在读写的表执行DDL操作,经常需要先锁表,但是这个表正在被人执行读写操作,那么就会报:Lock wait timeout 类的错误. 通过MDB实例详情页面的进程管理可以看到类似如下的情况,某个sql查询耗时超过了30分钟还没执行完,这个时候再对这个表执行ddl操作,肯定就会提示锁超时的错误了. 当然,我们也可以自己使用mysql客户端登录,show processlist查看进程信息(可以通过设置pager过滤:pager grep -iv sleep). 处理办法: 1.等待正在…
1:首先安装apache:打开终端(ctrl+Alt+t), 输入命令:sudo apt-get install apache2即可安装, 安装完后,打开浏览器,在地址栏输入:localhost或者http://127.0.0.1 看到It works,表示安装成功! 默认根目录:/var/www/ 2:安装mysql: sudo apt-get install mysql-server-5.0 安装完后,会要你新设置mysql root密码,输入你自己的密码后enter键,再确认密码. 3:安…