记一次mysql的问题处理@20181225】的更多相关文章

需求:由于某种原因,导致一次分库分表的环境中ddl添加字段和索引没有完全成功,比如100个分库,只有部分修改成功,需要将没有修改成功的库和表找出来,在手动去执行. 由于线上环境,这里模拟还原一下该问题的情景.就是有4个database,每个database有2张表,只有部分表上面ddl添加字段成功. root@lxd-vm1/[(none)] ::>create database db1; Query OK, row affected (0.02 sec) root@lxd-vm1/[(none…
记一次 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]…
最近一次日常迭代中,业务线需要对一张大表进行联合查询,查询性能可想而知,测试过程中服务接口直接响应超时,导致服务不可用,最后临时对该表进行分区操作,暂时缓解性能问题.由于是第一次操作表分区,姑且记录一下整个操作过程. 测试表结构 12345678 CREATE TABLE `tb_partition_test` ( `user_id` bigint(20) NOT NULL , `city_id` bigint(20) NOT NULL DEFAULT '0', `record_type` sm…
背景在上一篇文章里面已经提过了. 现在面临的问题是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…
1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同时使用了 2个 order by和 1个limit的分页 sql. 一个sql是上一个sql的count(*),即链接了5个表,当然没有limit了(取总数). 2. [着手优化] 1)[优化思路] 第一条是 做client调用 service层的数据缓存 第二条就是 优化sql本身. 这里着重讲一下…
引言 今天(August 5, 2015 5:34 PM)在给数据库中一张表的结构做一次调整,添加了几个字段,后面对之前的数据进行刷新,刷新的内容是:对其中的一个已有字段url进行匹配,然后更新新加的字段type和typeid.后来就写了个shell脚本来刷数据,结果运行shell脚本后我就懵了,怎么这么慢~~~ 情景再现 CREATE TABLE `fuckSpeed` ( `uin` bigint(20) unsigned NOT NULL DEFAULT 0, `id` int(11) u…
事情要从俩月前的一个坑说起,一台新的测试服务器,新项目一元夺宝用的. 配置aws上的一台云主机,系统盘8G,一块300G的云硬盘. 拿到机器后,另一运维小哥安装php,nginx,mysql等软件. 安装完后,然忘了挂载云硬盘. 随着根分区日志越来越多,mysql数据量增大...磁盘已满,mysql自行挂了...哭.. 开发找上门来,mysql插不进去了,我连上服务器,ps -ef.. 没有进程. 尝试重启..失败. 查看错误日志..如下: 161206 08:07:41 mysqld_safe…
最近采用ADO.NET开发了一个工具,解析了一条如下的日志并入库(MySql) -- :: [INFO] roleName=♣丶伊诺,orderId=,price= 发现入库后的roleName中的♣显示为□乱码了,一开始以为是表的编码问题,确认后是utf-8编码木有问题,后来又排除了文件编码及代码中的字符串都没有乱码的问题,凭经验分析,可能是连接字符串的问题吧,后来把MySql的连接字符串中也加入了utf-8编码的参数选项,测试OK了. server=;Integrated Security=…