解Bug之路-记一次中间件导致的慢SQL排查过程 前言 最近发现线上出现一个奇葩的问题,这问题让笔者定位了好长时间,期间排查问题的过程还是挺有意思的,正好博客也好久不更新了,就以此为素材写出了本篇文章. Bug现场 我们的分库分表中间件在经过一年的沉淀之后,已经到了比较稳定的阶段.而且经过线上压测的检验,单台每秒能够执行1.7W条sql.但线上情况还是有出乎我们意料的情况.有一个业务线反映,每天有几条sql有长达十几秒的超时.而且sql是主键更新或主键查询,更奇怪的是出现超时的是不同的sql,似…
你好,我是悟空. 这是悟空的第 183 篇原创文章 官网:www.passjava.cn 本文主要内容如下: 一.现象 最近项目的测试环境遇到一个主备同步的问题: 备库的同步线程停止了,无法同步主库的数据更改. 备库报错如下: 完整的错误信息: Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master's binary log is corrupted (…
问题背景 用wordpress搭博客,数据库采用MySQL.为了调试方便,创建账户my_account ,允许它从任意主机访问数据库. CREATE USER `my_account`@'%' IDENTIFIED BY 'my_password'; 修改 wp-config.php 相应配置,注意 DB_HOST 设置为 127.0.0.1. define('DB_USER', 'my_account'); // 账号 define('DB_PASSWORD', 'my_password');…
写在前面 最近工作中遇到两例mysql时间戳相关的问题,一个是mysql-connector-java和msyql的精度不一致导致数据查不到:另一例是应用服务器时区错误导致数据查询不到.通过这篇文章,希望能够解答关于mysql中时间戳的几个问题: mysql中的DATETIME精度为什么只支持到秒? mysql中的DATETIME类型跟时区有关吗? mysql设计表的时候,表示时间的字段改如何选择? 案例分析 DATETIME的精度问题 前段时间,将负责的应用的mysql-connector-j…
最近一次日常迭代中,业务线需要对一张大表进行联合查询,查询性能可想而知,测试过程中服务接口直接响应超时,导致服务不可用,最后临时对该表进行分区操作,暂时缓解性能问题.由于是第一次操作表分区,姑且记录一下整个操作过程. 测试表结构 12345678 CREATE TABLE `tb_partition_test` ( `user_id` bigint(20) NOT NULL , `city_id` bigint(20) NOT NULL DEFAULT '0', `record_type` sm…
Cause: java.sql.SQLException: Cannot convert value '2017-07-26 20:40:41.000000' from column 10 to TIMESTAMP.; SQL []; Cannot convert value '2017-07-26 20:40:41.000000' from column 10 to TIMESTAMP.; nested exception is java.sql.SQLException: Cannot co…
记一次 mysql 启动没反应 ,重启linux又可以启动 vim /var/log/mysqld.log 2018-02-04 13:22:49 28507 [ERROR] InnoDB: Cannot allocate memory for the buffer pool2018-02-04 13:22:49 28507 [ERROR] Plugin 'InnoDB' init function returned error.2018-02-04 13:22:49 28507 [ERROR]…
背景在上一篇文章里面已经提过了. 现在面临的问题是nextcloud没有mysql数据库,用不起来了. 因为文件没丢,一种方法是启动新的mysql数据库,把文件重新提交一次. 为了程序员的面子,没有选择这么没技术含量的方法.我想通过恢复mysql数据库来解决这个问题. 恢复mysql数据库 于是,在mysql目录里面找找看,发现了一堆binlog文件.上网查了一下,binlog文件里面好像有记录mysql的操作,可以用来恢复数据库. 查看binlog:# ll -th binlog.* 先把最近…
背景: nextcloud的mysql数据库被黑,删库勒索.参考:记一次mysql数据库被勒索(上) mysql数据库恢复成功,nextcloud还是无法连接.参考:记一次mysql数据库被勒索(中) 正文: 经过一番研究,发现nextcloud在第一次数据库配置成功后,会创建一个oc_root的帐号,之后就会使用oc_root帐号来连接数据库. 而oc_root的密码,并不是在配置的时候设置的管理员root的密码,貌似是nextcloud自己生成的. 加密算法应该跟这里面的passwordsa…
记一次mysql事务未提交导致锁未释放的问题 ## 查看未提交的事务(3秒内未操作的事务) SELECT p.ID AS conn_id, P.USER AS login_user, P.HOST AS login_host, p.DB AS database_name, P.TIME AS trx_sleep_seconds, TIME_TO_SEC(TIMEDIFF(NOW(),T.trx_started)) AS trx_open_seconds, T.trx_started, T.trx…