前言:终于在工作中遇到锁了,激动啊,事后发现然并卵 T T
在插入一个语句的时候,一直卡住,然后一直在转圈圈,没响应。直接点了左侧的终止按钮。
发现查询(select)没有问题
但是inser 或者 update 还是卡住,并报错
[HYOOOJ[3] Error writing file "/tmp/MYfd=424" (OS errno 28 - No space left on device)
一开始认为的是锁表了,执行以下命令进行查询
SELECT * FROM information_schema.INNODB_TRX
或者使用这条命令
show processlist
发现的确有一条是LOCK WAIT的状态
然后直接kill掉这条事务锁,本以为就这样解决了,个人经验 + 1。
但是当我再次插入数据的时候,发现又卡住了,通过上面的SQL命令一查,咦,咋又是LOCK WAIT状态,奇了怪了,于是开始研究被我忽视的那条报错异常信息。
经过查找,发现该报错的原因就是OS errno 28 - No space left on device[操作系统错误号28-设备上没有剩余空间]
,因为服务器的磁盘空间不足了,导致MySQL数据无法插入。
(trx_id, trx_state, trx_started, trx_requested_lock_id, trx_wait_started, trx_weight, trx_mysql_thread_id, trx_query, trx_operation_state, trx_tables_in_use, trx_tables_locked, trx_lock_structs, trx_lock_memory_bytes, trx_rows_locked, trx_rows_modified, trx_concurrency_tickets, trx_isolation_level, trx_unique_checks, trx_foreign_key_checks, trx_last_foreign_key_error, trx_adaptive_hash_latched, trx_adaptive_hash_timeout, trx_is_read_only, trx_autocommit_non_locking, trx_schedule_weight) VALUES (33697002, 'LOCK WAIT', '2022-07-27 10:02:33', '23409238364224:603:273:4:23406364832368', '2022-07-27 10:02:33', 2, 57747, 'UPDATE news_info SET class_id=15,
level_two_id=0,
tag_id=''9'',
rich_text=''<p>测试内容</p>'',
title=''测试'',
preface=''测试内容'',
content=''测试内容'',
cover_img=''https://xxxx.jpeg'',
comment_num=2,
read_num=2420,
upvote_num=1,
share_num=0,
style=0,
is_focal=0,
is_push=0,
no_comments=0,
user_id=1,
posted_by=''admin'',
create_time=''2022-07-04 16:40:43'',
update_time=''2022-07-27 10:02:33.053'',
deleted=0 WHERE id=189', 'starting index read', 1, 1, 2, 1136, 1, 0, 0, 'REPEATABLE READ', 1, 1, null, 0, 0, 0, 0, 1);