我也不知道为何,以前没什么问题,最近在数据库运行一段时间后表出现被锁无法读取。
show full processlist显示有2个连接的state为Locked
此时我连接数据库select表也会被locked
我把所有连接kill,再次尝试select表,照样被locked
百思不得其解,只能重启数据。还请各位指教,谢谢。mysql版本: 5.0.51b-community-nt

解决方案 »

  1.   

    表什么引擎、记录有多少?如果一个用户执行select表,也会被locked 
      

  2.   

    表是myisam,记录大概6w条问题是我kill了所有的连接,此表已经没有任何数据查询了,但是任何操作还是会lock,一直不会解锁
      

  3.   

    表是否有问题,修复一下表试试
    1 myisamchk可以检查某个数据表的健康情况(命令行),也可以修复,使用myisamchk -r table_name。2 check table table_name也可以检查(mysql终端中)。3 repair table table_name可以修复损坏的表。
      

  4.   

    show table status like 'tbl';检查一下状态。
      

  5.   

    repair table table_name应该可以解决问题,另外如果修复时出现sort by ...这种而且很慢,可以尝试调大key_buffer_size
      

  6.   

    记录一下慢查询,也许对你帮助。
    另外,想问一下,你在show full processlist里能看到执行的语句吗?