创宇实习周记之肆
这周工作内容比较少,想的事情比较多就只分享一个踩到的坑吧。
MySQL 死锁问题?
一次开发中,数据库结构做了修改,于是连接上 MySQL 数据库,执行了 alter 语句,但是很多之后都没有反应。估计是数据库断开了连接,于是 ctrl + c 中断操作,之后再退出 client ,重新登录数据库,重新执行。
重新执行的结果依旧是卡死在那,甚至连 select 语句都卡死了。
好嘛那我就 drop table -> 卡死 好嘛那我就 drop database -> 卡死
奇怪的是,其他数据库访问都很正常。
后来我觉得应该是第一次操作发生死锁(或者类似的情况)。
执行 show processlist; 。 果然我所有的命令都显示 Queue,然后 kill 掉对应的 pid。
问题解决。
MySQL localhost 问题
再补充之前遇到的一个问题。
同样采用 MySQL 做数据库。有一次采用 Slim 框架,Doctrine 做数据模型层的框架。但是每次页面请求都需要 1s 以上。但是以为是 ORM 的缘故,于是只用 mysql_query 来执行操作,同样是每次请求都需要 1s 以上。
原因是这样的,MySQL 默认情况下是开启了域名解析功能,如果 host 是域名,就会自己解析一遍。 在坑爹的是,win7 环境下,localhost 默认是没有写在 hosts 文件里。于是 host = localhost 的时候,MySQL 在 hosts 里找不到对应规则,自行进行了解析。于是造成了每次请求都很久的情况。
解决办法就很明朗了,在 hosts 里添加 localhost 的规则,或者采用 ip 作为 host。
comments powered by Disqus