mysql表死锁问题,非常紧急!请高帮忙!

qzm98 2003-09-15 09:16:37
各位mysql兄弟
最近小弟遇到一个问题,就是mysql晚上老是死锁,不知为何?白天没这个问题,而且白天网站的访问量应该要比晚上大好几倍。
我从日志里查看信息如下:
Status information:

Current dir: /var/lib/mysql/
Current locks:
lock: 85d6394:

lock: 853da94:

...全文
574 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
alamb 2003-09-24
  • 打赏
  • 举报
回复
要在数据库已经被死锁的时候show processlist出来看才有用
qzm98 2003-09-22
  • 打赏
  • 举报
回复
up
lierq 2003-09-17
  • 打赏
  • 举报
回复
这个方法够绝啊,哈哈
Linux下可以用
./mysqladmin -uroot shutdown -p
来终止MYSQL
不过,你可以写个程序,用showprocesslist ,找到被死锁的线程号
Kill processNo
loveflea 2003-09-17
  • 打赏
  • 举报
回复
To lxf_1976(小木) Thanks.

我试了一下,和你说的一样。我还以为用root就能解除所有锁定,结果不行!

笨方法,呵呵!暂时解决:

windows下隔断时间执行一次
net stop mysql
net start mysql

linux下
先 kill mysql的进程,再启动,hehe

不知可行否?呵呵!
qzm98 2003-09-17
  • 打赏
  • 举报
回复
up
qzm98 2003-09-17
  • 打赏
  • 举报
回复
| 5313 | root | localhost | NULL | Query | 0 | NULL | show processlist |
| 5482 | root | localhost.localdomain | test | Sleep | 186 | | NULL |
| 5483 | root | localhost.localdomain | china | Sleep | 185 | | NULL |
| 5491 | root | localhost.localdomain | china | Sleep | 139 | | NULL |
| 5492 | root | localhost.localdomain | test | Sleep | 136 | | NULL |
| 5493 | root | localhost.localdomain | test | Sleep | 123 | | NULL |
| 5494 | root | localhost.localdomain | china | Sleep | 120 | | NULL |
| 5497 | root | localhost.localdomain | china | Sleep | 120 | | NULL |
| 5524 | root | localhost.localdomain | china | Sleep | 9 | | NULL |
| 5525 | root | localhost.localdomain | test | Sleep | 1 | | NULL
lxf_1976 2003-09-16
  • 打赏
  • 举报
回复
呵呵,to loveflea(coolwind):

unlock 操作是线程(连接)相关的,线程1的unlock不能解除线程2的lock,它只能解除自己的表锁定!即不同的连接的unlock操作不能影响其它连接的lock
loveflea 2003-09-16
  • 打赏
  • 举报
回复
暂时解决:隔断时间执行一次 unlock tables; 可行!!

再慢慢查原因,是否被人攻击;还是自己写的代码存在问题。


qzm98 2003-09-15
  • 打赏
  • 举报
回复
攻击的可能性也会存在的
希望高手继续发言
ezhou 2003-09-15
  • 打赏
  • 举报
回复
如果晚上和白天的操作基本一致的话,是不是晚上有人在攻击你的服务器哦?(这年头,什么人都有的。)
lxf_1976 2003-09-15
  • 打赏
  • 举报
回复
同意 alamb(把握今生),“实际问题实际分析”

1. 用show processlist看看是哪些语句导致数据库锁死
2. 考虑检查一下所有锁表的操作
3. 晚上是否有人操作这个数据库?如果在用,是否不适当的执行了锁表操作?
alamb 2003-09-15
  • 打赏
  • 举报
回复
你用show processlist看看是哪些语句导致数据库锁死的,这种问题只能实际问题实际分析。
  大家好,我是录制课程的老师,课程已经上线课堂,欢迎大家试听,感谢同学们的支持。在你们的学习中我会全力助你提升MySQL技能,助你冲击更年薪。支持课程答疑,支持一对一答疑服务,由课程老师直接回答。    MySQL凭借着它不错的性能、不错的稳定性、数据的安全性常年稳居行业老二宝座。    越来越多的DBA和后端同学在工作中少不了和MySQL打交道,也经常会产生这样的疑问:    为什么我写的sql语句性能这么低?  为什么明明我建了索引却没有用到索引?  为什么突然我的数据就成了乱码?  为什么我备份的文件在主库恢复,数据无法同步到从库?  为什么我的数据库数据不多,却占了很多的空间?  生产中我应该选择哪种隔离级别?  生产中都在使用innodb存储引擎,我却对它一无所知?  我应该怎么规划缓冲池才能让数据库性能更?  为什么我做数据迁移这么慢?  为什么我写的sql会造成那么多的锁冲突、死锁?  为什么我不能将数据恢复到任意时间点?  为什么我不能解决公司主从复制架构中的故障?  吧啦吧啦一大堆问题……    在面试中MySQL的一些知识更成为躲不过的问题,比如b+tree索引、MVCC、隔离级别的实现、锁的使用,主从复制,MySQL性能优化、事务两阶段提交等等都成为了面试考题重灾区。    我的课程就是从实际工作来,从问题出发,带着问题来学习MySQL,想解决问题就要学习新的知识,大家跟紧老司机,MySQL的面纱就会慢慢摘下。

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧