无论是在命令行还是phpmyadmin里面都只能插入数据,无法删除数据。在命令行表现为不返回结果。phpmyadmin一直提示等待,直接在phpmyadmin输入SQL语句秒执行,但是就是没删除掉。
创建数据库也是一样,只能创建无法删除。
SQL语句都是对的。
服务器是Centos6.5
MYSQL是5.6.24
以前没遇到过这样的问题,百度个GG了几个小时也没解决,故而在此跪求解答。
1
TaoAlpha 2015-05-30 10:42:29 +08:00 1
会不会是当前用户没有删除权限? SHOW GRANTS; 看看
|
2
easynoder 2015-05-30 10:48:47 +08:00
比较大的可能是没有权限了
|
3
jiongjionger OP |
4
easynoder 2015-05-30 10:56:56 +08:00
也有可能发生死锁了吧。show engine innodb status;看看
|
5
TaoAlpha 2015-05-30 10:58:06 +08:00
@jiongjionger 你show grants;出来的是什么?
|
7
jiongjionger OP |
8
jiongjionger OP @TaoAlpha 用root显示的是GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' ...
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GR... |
9
endoffight 2015-05-30 11:08:49 +08:00 via Android 1
重建索引试试
|
10
jiongjionger OP @endoffight 无效= =
|
11
wintersun 2015-05-30 11:19:06 +08:00 3
@TaoAlpha 一般锁是行锁(Row Lock),也即是针对一个表中的某些行记录锁住不让修改,当然也不能删除。 而Insert插入有行锁的同一个表中时,一般新数据对行锁锁定的数据无影响,无依赖,所以insert没问题。
另外一种是表锁(Table Lock),整个表在锁定解除之前,都不能修改,那就insert也会失败。 一般行锁用得多,很明显其工作效率比表锁要高;表锁我估计会用在数据导入导出时吧,一般很少用。 |
12
easynoder 2015-05-30 11:19:13 +08:00 1
看你的日志,你应该建立了多个会话,而你执行Insert 的会话并没有提交事务,导致你的另一个会话的delete执行不成功。
|
13
jiongjionger OP @easynoder 我等夜深人静的时候关掉服务器试试。非常感谢你的回答
|
14
easynoder 2015-05-30 11:31:09 +08:00
@jiongjionger 方便的话,可以把你的insert和delete的 sql发出来,具体分析一下。
|
16
shuimugan 2015-05-30 13:29:17 +08:00
看下有没有触发器,也可能是在触发器实现了禁止删除
|
17
jiongjionger OP @shuimugan 并没有触发器 :(
|
18
jiongjionger OP @easynoder 关掉了全部服务,只有我一个人在后台操作数据库。依然是无法删除,可以插入。非常猎奇
|
19
jiongjionger OP 问题解决了。- -说是为了安全给每台服务器装了个安全狗,结果和系统冲突导致各种不兼容,于是MYSQL无法删除数据,卸载就好了
|
20
taijia 2015-05-30 23:48:05 +08:00 via Android
用的是windows吗
|
21
Neveroldmilk 2015-05-31 09:45:02 +08:00
这种兼容性问题,害死人哪。
|
22
xifangczy 2015-05-31 11:19:31 +08:00
@jiongjionger 安全狗...就是服务器中的360
|
23
jiongjionger OP @taijia linux。centos6.5
|
24
jiongjionger OP @Neveroldmilk 的确啊。坑死,最主要连提示都没有
|
25
jiongjionger OP @xifangczy 服务器商安装的,然后我一直觉得挺方便的就没管
|