- 浏览: 2652559 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
如果想让某个表只读不能被修改,可以在MySQL Server层面加表级锁:
mysql> lock tables sms read;
Query OK, 0 rows affected (0.01 sec)
然后其他的连接去更新或插入数据是不会成功的:
mysql> insert into sms(id) values (555);
因为要等待表级锁的释放,可以通过processlist看到这一点:
mysql> show processlist;
+--------+-------------+---------------------+---------------+---------+------+-------------------------------------------+-----------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+--------+-------------+---------------------+---------------+---------+------+-------------------------------------------+-----------------------------------------+ |
| 364733 | root | localhost | banpingdb | Query | 0 | NULL | show processlist |
| 364734 | root | localhost | banpingdb | Query | 148 | Waiting for table level lock | insert into sms(id) values (555) |
+--------+-------------+---------------------+---------------+---------+------+-------------------------------------------+-----------------------------------------+
2 rows in set (0.00 sec)
当然,更详细的信息也可以看到:
mysql> show engine innodb status \G
------------
TRANSACTIONS
------------
Trx id counter 5AA0D8A
Purge done for trx's n:o < 5AA0D77 undo n:o < 0
History list length 1063
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 0, not started, process no 21967, OS thread id 1286076736
mysql tables in use 1, locked 1
MySQL thread id 364734, query id 3527582 localhost root Waiting for table level lock
insert into sms(id) values (555)
---TRANSACTION 0, not started, process no 21967, OS thread id 1284471104
mysql tables in use 1, locked 1
MySQL thread id 364733, query id 3527604 localhost root
show engine innodb status
但是,今天奇怪的发现,在等待了一段时间后,insert语句竟然莫名其妙的成功了,分析了一下原因。并没有什么地方控制表级锁的超时,就是因为表级锁被释放了,才能使得insert成功,而表级锁被释放的源头就是wait_timeout参数,这个参数的意思是:
The number of seconds the server waits for activity on a noninteractive connection before closing it.
如果这个值设置的小,比如说一分钟,那么一分钟后,不活动的连接就会被释放,而连接的释放会导致这个连接发出的表级锁被解锁。如果你的系统里这个参数很小,下面的这些信息一定是你经常看到的:
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 364743
Current database: banpingdb
这个错误提示的就是连接超时了重新连的意思。
还有另外一个参数是interactive_timeout,是针对interactive connection的超时时间,但是在global层面设置这个值会引起wait_timeout的连带改变。
发表评论
-
MySQL 中的重做日志,回滚日志 ,以及二进制日志的简单总结
2018-06-06 17:44 1155ImportNew 5天前 (点击上方公众号,可快速关注) ... -
mysql 设置字符集 中文乱码
2016-02-04 15:45 2905一、登录MySQL查看用SHOW VARIABLES LIK ... -
mysql slow log控制
2014-08-28 10:15 5325参考官方文档:http://dev.mysql.com/do ... -
MySQL数据库InnoDB存储引擎 Buffer Pool Flush List详解
2014-08-21 10:36 1235原文:http://www.zhdba.com/mysqlo ... -
Percona-Server安装记录
2014-07-28 23:05 1410本文档记录安装Percona-Server开发环境,非生产 ... -
mysql创建用户权限
2014-07-11 17:01 766mysql 权限如下: root@localhost : ... -
mysql group测试脚本
2014-06-25 15:38 847sql数据语句: CREATE TABLE `access ... -
mysql性能优化之 show profile
2014-06-20 10:46 2431很漂亮的结果,没有creating sort index ... -
MYSQL INNODB中GAP LOCK引起死锁的问题
2014-06-06 13:08 2305先了解一下什么是GAP LOCK 在INNODB中,rec ... -
MySQL出现Waiting for table metadata lock的场景浅析
2014-04-23 14:27 695原文:http://ctripmysqldba.iteye ... -
mysql 索引原理
2014-03-27 20:02 494对于这条SQL: from message where ... -
mysql中group的实现
2014-01-24 10:31 742同学问到group by的实现 ... -
MySQL Innodb日志机制深入分析
2013-12-02 22:28 01.1. Log & Checkpoint In ... -
优化临时表使用,SQL语句性能提升100倍
2013-12-02 22:25 941【问题现象】 线上mysql数据库爆出一个慢查询,DBA观 ... -
也说快速关闭MySQL/InnoDB
2013-09-21 13:56 791原文:http://www.orczhou.com/ind ... -
关于mysql优化一些总结
2013-09-21 08:41 1067最近在做mysql数据库的 ... -
robbin谈MySQL InnoDB性能调整的一点实践
2013-09-21 08:13 753因为JavaEye网站的数据 ... -
mysql文档集合
2013-09-05 12:11 844理解MySQL——索引与优化 理解MySQL——架构与概念 ... -
mysql binlog细节
2013-09-05 12:06 1021原来mysql binlog内容是先保存在trx_cache中 ... -
MySQL如何避免使用swap
2013-09-04 09:52 1063原文: http://www.taobaodba.com/ ...
相关推荐
总之,MySQL的连接超时问题主要是由`wait_timeout`参数引发的,解决方法包括但不限于调整MySQL服务器配置、使用连接池、更新应用程序代码以处理连接失效的情况,以及在使用ORM框架时,按照框架的文档配置相应的连接...
然而,为了优化资源使用,MySQL配置了一个参数`wait_timeout`,这个参数定义了连接在空闲多长时间后会被自动关闭。当JavaEE应用中的数据库连接在超过这个设定的时间没有执行任何操作,MySQL服务器会断开这个连接,这...
当传输的数据包超过了`max_allowed_packet`设定的值,MySQL会拒绝接收,从而导致诸如"Got a packet bigger than 'max_allowed_packet' bytes"或"MySQL server has gone away"这类错误。 当遇到这些错误时,通常需要...
本篇将详细探讨`max_allowed_packet`参数和`show profiles`功能,以及`wait_timeout`设置对MySQL性能的影响。 `max_allowed_packet`参数用于控制MySQL服务器接收或发送的最大数据包大小。默认情况下,这个值可能...
### MySQL异常...通过适当调整MySQL服务器的`wait_timeout`配置或C3P0连接池的相关参数,可以有效地解决此类问题。在实际操作过程中,还需要根据具体的业务场景选择合适的配置方案,以达到最佳的效果。
innodb_lock_wait_timeout = 120 # InnoDB事务在被回滚之前可以等待一个锁定的超时秒数。InnoDB在它自己的锁定表中自动检测事务死锁并且回滚事务。InnoDB用LOCK TABLES语句注意到锁定设置。默认值是50秒 bulk_insert...
MySQL在空闲连接达到一定时间(默认8小时,即`wait_timeout`参数设定的时间)后会自动断开这些连接,以节省系统资源。然而,一些连接池如c3p0可能没有及时检测到这种变化,仍尝试使用已被MySQL断开的连接,导致应用...
问题 在Django中使用mysql偶尔会出现数据库连接丢失的情况,错误通常有如下两种 ...如果客户端使用一个连接查询多次数据库,如果连续查询则没有问题,如果查询几次后停顿超过wait_timeout后再次查询就会出
长连接可以在多个操作之间重用,但长时间无活动的连接会被断开,可通过`interactive_timeout`和`wait_timeout`变量设置超时时间。默认最大连接数为151,最大可设置为16384。可以通过`SHOW FULL PROCESSLIST`命令查看...
这个超时时间通常由服务器配置的`wait_timeout`参数决定,不同的MySQL服务器配置可能不同,但通常是几分钟到几个小时不等。 在案例中,由于使用了单例模式的数据库操作类,数据库连接在第一次读取数据后保持打开...
MySQL服务器设置了一定的超时时间,如果在 `wait_timeout` 参数设定的时间内没有收到新的请求,连接会被自动关闭。默认的 `wait_timeout` 值为28800秒,即8小时。你可以通过 `show global variables like '%timeout'...
3. `interactive_timeout`和`wait_timeout`: 分别设置交互式会话和非交互式会话超时时间,防止长时间无活动的连接占用资源。 4. `key_buffer_size`: 用于MyISAM表的索引缓存,应根据表的大小适当调整。 5. `query_...
- **调整 MySQL 的 wait_timeout 参数**:将其设置为更长的时间或者根据应用需求进行调整。 - **调整 c3p0 的 maxIdleTime 和 idleConnectionTestPeriod 参数**:确保这些参数设置得当,以便c3p0能够在MySQL关闭空闲...
`show processlist`可以查看当前的连接状态,`wait_timeout`参数控制无活动连接的断开时间,默认为8小时。 2. **查询缓存**:MySQL在执行查询前会先检查缓存,如果找到匹配的SQL和结果,就直接返回。然而,由于查询...
在MySQL中,如果连接保持时间过长,可能会占用过多资源,因此需要合理设置`wait_timeout`等参数来管理连接。 2. **查询缓存**:在MySQL的早期版本中,如果查询缓存开启且未被禁用,服务器会检查这个查询是否之前...
is longer than the server configured value of 'wait_timeout'. 二、解决连接超时问题 要解决连接超时问题,我们可以在连接 URL 上添加 autoReconnect=true 来解决。例如: jdbc:mysql://localhost:3306/test?...
12. **Lock wait timeout exceeded try restarting transaction**:在MySQL中,如果事务等待锁的时间超过设定的超时时间,会出现此错误。分析事务逻辑,优化事务粒度,或者提高锁等待超时时间(innodb_lock_wait_...
- `wait_timeout`:设置空闲连接的最大生存时间。可以根据应用场景适当调整,例如减少默认的8小时到半小时。 - `max_user_connections`:设置最大用户连接数,以避免资源过度消耗。 - `thread_concurrency`:设置...