gpt4 book ai didi

mysql - 查询结果间歇性返回为只读 "could not determine a unique row identifier (MySQL server has gone away)"

转载 作者:搜寻专家 更新时间:2023-10-30 20:52:08 24 4
gpt4 key购买 nike

在 MySQL Workbench 6.3 中运行非常基本的查询时,至少有 2 位用户发现偶尔会返回只读结果,当您将鼠标悬停在只读警告上时,它会显示完整消息:

"could not determine a unique row identifier (MySQL Server has gone away)"

这可以通过关闭工作台并重新打开来解决。如果您这样做并运行完全相同的查询,结果将是可编辑的。

以下是导致此问题的两个查询:

SELECT * FROM gambling.Access where identifier like '55512125555';
SELECT * FROM gambling.disposition_log WHERE case_id like '55512125555';

一般来说,我对 mysql 非常不熟悉,但我到处寻找解决方案。我见过 100 个线程解决 MySQL 服务器已经消失的部分,但我从未见过它与唯一行标识符位结合。

我已经从遇到此问题的一位用户那里提取了日志,我不确定如何在此处发布这些日志,但是日志的最后 224 行都是相同的消息:

[ERR][ AutoCCache]: Exception while running refresh task: MySQL server has gone away

我认为这可能与两个用户的授予权限有关,所以我检查了那些(SHOW GRANTS FOR 'user'@'%';)我得到以下信息:

ERROR 1141 (42000): There is no such grant defined for user 'user' on host '%'

老实说,考虑到这是通过关闭和重新打开连接(重新启动程序)解决的,我不确定这是问题的一部分。但话又说回来,以 root 身份登录,我从未遇到过这个问题。

最后,这是该用户计算机的系统信息:

MySQL Workbench Community (GPL) for Windows version 6.3.6 CE build 511 (64 bit)

Configuration Directory: C:\Users\mhenderson\AppData\Roaming\MySQL\Workbench

Data Directory: C:\Program Files\MySQL\MySQL Workbench 6.3 CE

Cairo Version: 1.10.2

OS: Microsoft Windows 10 Pro

CPU: 4x Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz, 8.0 GiB RAM

Active video adapter NVIDIA GeForce GT 635

Installed video RAM: 1024 MB

Current video mode: 1920 x 1080 x 4294967296 colors

Used bit depth: 32

Driver version: 10.18.13.5382

Installed display drivers: nvd3dumx.dll,nvwgf2umx.dll,nvwgf2umx.dll,nvwgf2umx.dll,nvd3dum,nvwgf2um,nvwgf2um,nvwgf2um

Current user language: English (United States)

最后,非常感谢大家提供的任何帮助。我无法告诉你我有多感激。

2016 年 8 月 16 日更新仍然没有运气在其他地方找到解决方案,而且由于这里缺乏回应,我不禁认为我没有提供正确的信息。即使您不知道我的问题的答案,我也很想知道我可以提供哪些其他信息来帮助缩小问题范围!有什么建议么?提前致谢!

最佳答案

SELECT * FROM gambling.Access where identifier like '55512125555';

您没有使用索引,您使用的是 LIKE,因此 MySQL 将不得不更加努力地查找数据。数据集越大,查询执行的时间就越长。这也可能会返回一个大数据集。

可能发生的问题不是数据库问题,而是连接端问题。我已经看到 Workbench 在执行或数据传输很长的地方超时。因为您没有获得完整的返回,Workbench 会将数据设为只读。

您可以尝试通过几种方式解决这个问题

  1. 建立某种索引。如果您对查询执行 EXPLAIN,您可能会看到它执行大量磁盘工作来响应查询。索引旨在帮助您快速查找数据。
  2. LIMIT 将您的查询限制为较小的返回值。比如,获取 100 行(Workbench 有一个下拉菜单可以帮助您完成此操作)。这将减少您超时的机会

关于mysql - 查询结果间歇性返回为只读 "could not determine a unique row identifier (MySQL server has gone away)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38794716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com