【发布时间】:2012-10-15 04:24:14
【问题描述】:
我在使用 MySQL 时遇到了一些奇怪的行为。我有一个不大的表,大约 20k 行,其中一列是 VARCHAR(512)。对此表执行 SELECT 查询(涉及连接等)有效,但如果我将架构更改为 VARCHAR(1024) 或 TEXT,我会收到错误:#2013 Lost connection to MySQL server during query。
我的 error.log 显示如下:
121014 16:24:49 [Note] Plugin 'FEDERATED' is disabled.
121014 16:24:49 InnoDB: Initializing buffer pool, size = 8.0M
121014 16:24:49 InnoDB: Completed initialization of buffer pool
121014 16:24:49 InnoDB: Started; log sequence number 0 52320007
121014 16:24:49 [Note] Recovering after a crash using /var/log/mysql/mysql-bin
121014 16:24:49 [Note] Starting crash recovery...
121014 16:24:49 [Note] Crash recovery finished.
121014 16:24:49 [Note] Event Scheduler: Loaded 0 events
121014 16:24:49 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.1.58-1ubuntu1-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu)
我已转储数据库并将其加载到另一台机器上,无论架构如何,它都可以正常工作。有谁知道我可以如何调试此问题或可能导致它的原因?
额外说明:问题机器是 Rackspace 云服务器,我已调整服务器大小,这意味着它有更多资源,而且它运行的硬件可能发生了变化,但问题仍然存在。
澄清:无论架构如何,我都可以对该表执行大多数查询,似乎只是特定查询(涉及多个连接)导致失败。 SELECT * 工作正常。
【问题讨论】:
-
尝试转储表并重建它。在转换为 VARCHAR(1024) 或 TEXT 的过程中可能发生了一些事情。
-
我实际上已经这样做了,它没有帮助!我从我在另一台正常工作的机器上使用的同一个转储中重建了它。