我收到错误代码:2013。当我尝试使用 MySQL Workbench 向表添加索引时,在查询错误期间丢失了与 MySQL 服务器的连接。我还注意到,每当我运行长查询时它就会出现。
有没有增加超时值?
我收到错误代码:2013。当我尝试使用 MySQL Workbench 向表添加索引时,在查询错误期间丢失了与 MySQL 服务器的连接。我还注意到,每当我运行长查询时它就会出现。
有没有增加超时值?
新版本的 MySQL WorkBench 可以选择更改特定超时。
对我来说,它在编辑 → 首选项 → SQL 编辑器 → DBMS 连接读取超时(以秒为单位):600
将值更改为 6000。
每次我想搜索整个数据集时,未选中的限制行都会让人厌烦。
如果您的查询具有 blob 数据,则可以通过应用此答案中建议my.ini
的更改来解决此问题:
[mysqld]
max_allowed_packet=16M
默认情况下,这将为 1M(允许的最大值为 1024M)。如果提供的值不是 1024K 的倍数,它将自动四舍五入到最接近的 1024K 倍数。
虽然引用的线程是关于 MySQL 错误2006的,但将max_allowed_packet
1M 设置为 16M确实修复了运行长查询时出现的 2013 错误。
对于 WAMP 用户:您将在该[wampmysqld]
部分中找到标志。
将以下内容添加到 /etc/mysql/cnf 文件中:
innodb_buffer_pool_size = 64M
例子:
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
innodb_buffer_pool_size = 64M
SET @@local.net_read_timeout=360;
警告:当您在远程连接中应用它时,以下内容将不起作用:
SET @@global.net_read_timeout=360;
编辑: 360 是秒数
您应该将 mysql 配置文件中的“interactive_timeout”和“wait_timeout”属性设置为您需要的值。
就我而言,将连接超时间隔设置为 6000 或更高的值不起作用。
我只是做了工作台上说我能做的事情。
查询从 DBMS 返回数据所需的最长时间。设置 0 以跳过读取超时。
在 Mac 首选项 -> SQL 编辑器 -> 转到 MySQL 会话 -> 将连接读取超时间隔设置为 0。
它有效
此错误消息有三个可能的原因
更多详情 请阅读>>
原因 2:
SET GLOBAL interactive_timeout=60;
从默认的 30 秒到 60 秒或更长
原因 3:
SET GLOBAL connect_timeout=60;
只需执行 MySQL 升级,它将重新构建 innoDB 引擎以及重建 MySQL 正常运行所需的许多表,例如performance_schema
,information_schema
等。
从您的 shell 发出以下命令:
sudo mysql_upgrade -u root -p
我知道它很旧,但在 Mac 上
1. Control-click your connection and choose Connection Properties.
2. Under Advanced tab, set the Socket Timeout (sec) to a larger value.
如果您在还原大转储文件期间遇到此问题并且可以排除它与网络有关的问题(例如在本地主机上执行),那么我的解决方案可能会有所帮助。
我的 mysqldump 至少保存了一个对于 mysql 来说太大而无法计算的 INSERT。show variables like "net_buffer_length";
您可以通过在 mysql-cli 中键入来查看此变量。你有三种可能:
--skip-extended-insert
,每次插入使用一行 -> 虽然这些转储更易于阅读,但这不适合 > 1GB 的大转储,因为它往往非常慢--net-buffer_length NR_OF_BYTES
其中 NR_OF_BYTES 小于服务器的 net_buffer_length -> 我认为这是最好的解决方案,虽然速度较慢,但不需要重新启动服务器。我使用了以下 mysqldump 命令:
mysqldump --skip-comments --set-charset --default-character-set=utf8 --single-transaction --net-buffer_length 4096 DBX > dumpfile
有时你的 SQL-Server 会陷入死锁,我遇到过这个问题 100 次。您可以重新启动计算机/笔记本电脑以重新启动服务器(简单方法),或者您可以转到任务管理器>服务>您的服务器名称(对我来说,它是 MySQL785 之类的)。然后右键单击>重新启动。再次尝试执行查询。
请尝试在编辑→首选项→SQL查询中取消选中限制行
因为您应该将 mysql 配置文件中的“interactive_timeout”和“wait_timeout”属性设置为您需要的值。
在 Edit->Preferences->SQL editor->MySQL session 中更改“读取超时”时间
加载 .csv 文件时我遇到了同样的问题。将文件转换为 .sql。
使用以下命令,我设法解决了这个问题。
mysql -u <user> -p -D <DB name> < file.sql
希望这会有所帮助。
转到工作台编辑 → 首选项 → SQL 编辑器 → DBMS 连接读取超时:最多 3000。不再发生错误。
如果此处的所有其他解决方案都失败 - 检查您的系统日志(/var/log/syslog 或类似的)以查看您的服务器在查询期间是否内存不足。
在没有配置交换文件的情况下将 innodb_buffer_pool_size 设置得太接近物理内存时出现此问题。MySQL 建议数据库特定服务器设置 innodb_buffer_pool_size 最大为物理内存的 80% 左右,我将其设置为 90% 左右,内核正在杀死 mysql 进程。将 innodb_buffer_pool_size 移回 80% 左右,这解决了问题。
这发生在我身上,因为我的 innodb_buffer_pool_size 设置为大于服务器上可用的 RAM 大小。事情因此而中断,并发出此错误。修复方法是使用正确的 innodb_buffer_pool_size 设置更新 my.cnf。
我遇到了同样的问题。我相信当你有更大表的外键时会发生这种情况(这需要时间)。
我尝试在没有外键声明的情况下再次运行 create table 语句,发现它有效。
然后在创建表之后,我使用 ALTER TABLE 查询添加了外键约束。
希望这会对某人有所帮助。
去:
编辑 -> 首选项 -> SQL 编辑器
在那里,您可以看到“MySQL Session”组中的三个字段,您现在可以在其中设置新的连接间隔(以秒为单位)。
首先检查索引是否到位。
SELECT *
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = '<schema>'
如果您使用的是 SQL Work Bench,您可以尝试使用索引,通过向表添加索引来添加索引,单击表上的扳手(扳手)符号,它应该打开表的设置,如下,单击索引视图,键入索引名称并将类型设置为索引,在索引列中,选择表中的主列。
对其他表上的其他主键执行相同的步骤。
对于那些使用 SSH 连接到他们的 MySQL 数据库的人来说,这里似乎缺少一个答案。您需要检查两个地方,而不是其他答案所建议的 1:
工作台编辑 → 首选项 → SQL 编辑器 → DBMS
工作台编辑 → 首选项 → SSH → 超时
我的默认 SSH 超时设置非常低,导致我的一些(但显然不是全部)超时问题。之后,别忘了重启 MySQL Workbench!
最后,可能值得联系您的数据库管理员并要求他们通过 my.conf + mysql restart 增加 mysql 本身的 wait_timeout 和 interactive_timeout 属性,或者如果无法重新启动 mysql 则进行全局设置。
希望这可以帮助!
原来我们的防火墙规则阻止了我与 MYSQL 的连接。在解除防火墙策略以允许连接后,我能够成功导入架构。
由于升级 Mysql 后出现问题,我收到此错误消息。在我尝试进行任何查询后立即出现错误
检查路径中的mysql错误日志文件/var/log/mysql
(linux)
在我的情况下,将 Mysql 所有者重新分配给 Mysql 系统文件夹对我有用
chown -R mysql:mysql /var/lib/mysql
我在运行存储过程时遇到了这个问题——它在数据库中的表中创建了很多行。我可以在时间超过 30 秒边界后立即看到错误。
我尝试了其他答案中的所有建议。我确信其中一些有所帮助,但是真正使它对我有用的是从 Workbench 切换到 SequelPro。
我猜这是我在 Workbench 中找不到的一些客户端连接。也许这也会对其他人有所帮助?
我遇到了同样的问题 - 但对我来说,解决方案是权限过于严格的数据库用户。我不得不让这个Execute
能力摆在mysql
桌面上。在允许之后,我没有断开连接了
首先建立连接
mysql --host=host.com --port=3306 -u username -p
,然后选择您的数据库use dbname
,然后选择源哑source C:\dumpfile.sql
。完成后\q
要遵循并确保三件事:
答案:
我的观察——
当您一起运行 MySQL Workbench 和终端并在终端中运行时-
SET AUTOCOMMIT = 0;
或者
START TRANSACTION;
那么你通常会遇到这种问题。
甚至在之后——
SET AUTOCOMMIT = 1;
或者
COMMIT;
问题仍然存在。
您需要从终端和 MYSQL 工作台注销,然后再次登录,否则重新启动。
检查一下
OOM on /var/log/messages ,
modify innodb_buffer_pool_size value ; when load data , use 50% of os mem ;
希望这可以帮助
这通常意味着您“与 MySQL 服务器的当前版本不兼容”,请参阅 mysql_upgrade。我遇到了同样的问题,只需要运行:
mysql_upgrade --password 文档指出,“每次升级 MySQL 时都应该执行 mysql_upgrade”。