gpt4 book ai didi

mysql - 多个内部联接3个或更多崩溃mysql服务器5.1.30 opensolaris

转载 作者:行者123 更新时间:2023-11-30 23:41:21 24 4
gpt4 key购买 nike

对4个内部联接表进行简单查询时,服务器崩溃,并且mysql .err文件中显示以下输出。

例如。从表1中选择*
table1.a上的内部联接table2.a = table2.a和table1.b = table2.b
table2.a上的内部联接table3.a = table3.a和table2.c = table3.c
table3.a上的内部连接table4 = table4.a和table3.d = table4.d

如果我删除表之一,它执行得很好。同样,如果我删除另一个表,它可以正常执行。尽管无论如何都检查了所有表,但这暗示着其中一个表不是问题。

mysql.err跟踪:

100503 18:13:19-mysqld收到信号11;
这可能是因为您遇到了错误。此二进制文件也可能
或与之链接的某个库已损坏,构建不当,
或配置错误。硬件故障也可能导致此错误。
我们将尽力收集一些信息,希望这些信息有助于诊断
问题,但是由于我们已经崩溃了,所以肯定有问题
这可能会失败。

key_buffer_size = 1572864000
read_buffer_size = 2097152
max_used_connections = 11
max_threads = 151
threads_connected = 10
mysqld可能用尽
key_buffer_size +(read_buffer_size + sort_buffer_size)* max_threads = 2155437 K
内存字节
希望没事;如果不是,则减少方程中的一些变量。

thd:0x72febda8
尝试回溯。您可以使用以下信息来查找
mysqld在哪里死亡。如果在此之后您没有看到任何消息,则说明发生了某些情况
严重错误...
stack_bottom = fe07efb0 thread_stack 0x40000
试图获取一些变量。
某些指针可能无效并导致转储中止...
thd-> be1021f0处的查询=解释从业务中选择*
business.id上的内部联接时间表= timetable.business_id
timetable.business_id = timetableentry.business_id和timetable.kid = timetableentry.parent上的内部联接timetableentry
在timetable.business_id = staff.business_id和timetable.staf上的内部加入人员f_person = staff.kid
其中business.id ='3050bb04fda41df64a9c1c149150026c'
thd-> thread_id = 9
thd-> killed = NOT_KILLED
http://dev.mysql.com/doc/mysql/en/crashing.html上的手册页包含
有助于您找出导致崩溃的原因的信息。
100503 18:13:19 mysqld_safe mysqld重新启动
100503 18:13:20 InnoDB:无法在文件./ibdata1上设置DIRECTIO_ON:OPEN:设备的适当ioctl不正确,无论如何仍在继续
100503 18:13:20 InnoDB:无法在文件./ibdata1上设置DIRECTIO_ON:OPEN:设备的适当ioctl不正确,无论如何仍在继续
InnoDB:ibdata文件中的日志序列号不匹配
InnoDB:ib_logfiles中的日志序列号!
100503 18:13:20 InnoDB:数据库未正常关闭!
InnoDB:开始崩溃恢复。
InnoDB:从.ibd文件中读取表空间信息...
InnoDB:从doublewrite还原可能的半写数据页
InnoDB:缓冲区...
InnoDB:最后一个MySQL Binlog文件位置0 2731,文件名./mysql-bin.000093
100503 18:13:20 InnoDB:已启动;日志序列号0 2650338426
100503 18:13:20 [Note]使用mysql-bin崩溃后恢复
100503 18:13:20 [注意]开始崩溃恢复...

100503 18:13:20 [注意]崩溃恢复已完成。

这在opensolaris上
SunOS 5.11 snv_111b i86pc i386 i86pc
的MySQL 5.1.30

这是my.cnf文件中的片段:

key_buffer = 1500M
max_allowed_pa​​cket = 1M
thread_stack = 256K
thread_cache_size = 8
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
table_cache = 512
tmp_table_size = 400M
max_heap_table_size = 64M

query_cache_limit = 20M
query_cache_size = 200M

这是错误还是配置问题?

测试数据:

在两个几乎完全相同的mysql安装上,我有相同的问题。
基本上,opensolaris服务器上有两个区域,一个已从另一个区域克隆。
我不知道这是否算作另一台机器。
在填充测试数据后,最后的查询实际上确实使mysql服务器崩溃,但在填充数据之前没有。

创建数据库test默认字符集latin1 COLLATE latin1_swedish_ci;
USE test;

如果不存在则创建表table1(
a bigint(20)NOT NULL,
b bigint(20)NOT NULL,
主键(ab)
)ENGINE = MyISAM DEFAULT CHARSET = latin1;

如果不存在则创建表table2(
a bigint(20)NOT NULL,
b bigint(20)NOT NULL,
c bigint(20)NOT NULL,
主键(ab),
KEY c(c)
)ENGINE = MyISAM DEFAULT CHARSET = latin1;

如果不存在则创建表table3(
a bigint(20)NOT NULL,
c bigint(20)NOT NULL,
d bigint(20)NOT NULL,
主键(ac),
KEY d(d)
)ENGINE = MyISAM DEFAULT CHARSET = latin1;

如果不存在则创建表table4(
a bigint(20)NOT NULL,
d bigint(20)NOT NULL,
主键(ad)
)ENGINE = MyISAM DEFAULT CHARSET = latin1;

插入table1(ab)VALUES
(10001,20001),
(10002,20002);
插入table2(abc)VALUES
(10001、20001、30001),
(10002,20002,30002);
插入table3(acd)VALUES
(10001、30001、40001),
(10002,30002,40002);
插入table4(ad)VALUES
(10001,40001),
(10002,40002);

从表1中选择*
table1.a上的内部联接table2.a = table2.a和table1.b = table2.b
table2.a上的内部联接table3.a = table3.a和table2.c = table3.c
table3.a上的内部连接table4 = table4.a和table3.d = table4.d

最佳答案

测试数据也对我有用,杀死了mysql。
可悲的是,从石器时代开始,现实世界中的应用程序“时间辅助6.2”使用3个连接并爆炸。
完全按照所述方式进行。

发现了一些提示:
http://bugs.opensolaris.org/view_bug.do?bug_id=6892501

说它特定于开放的solaris,只用了一年的时间修复? (它不会让我添加第二个链接!)

在上面的底部,它指向mysql bug 49091。

我没有看到解决方案-.-

关于mysql - 多个内部联接3个或更多崩溃mysql服务器5.1.30 opensolaris,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2761791/

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