编辑:我应该在ServerFault上创建这个帖子,错误选项卡,对不起。
我今天正在尝试升级我的Zabbix (MySQL DB)。当前版本为2.4.8,我想将其更新为3.4.4
安装进行得很顺利。当我启动zabbix服务器进程时,数据库将开始升级,然后以以下错误消息结束:
[Z3005] query failed: [1034] Incorrect key file for table 'alerts'; try to repair it [alter table alerts add p_eventid bigint unsigned]
因此,我停止了zabbix服务器,执行了“alerts警报添加了p_eventid bigint未签名”,重新启动了zabbix服务器,现在得到了以下错误消息:
[Z3005] query failed: [1060] Duplicate column name 'p_eventid' [alter table alerts add p_eventid bigint unsigned]
这对我来说有点麻烦,因为错误信息是不同的,但是建议的解决方案仍然是一样的,并且已经完成了。
我做了一些研究,找到了一些有用的这个ZBX错误报告,但我不知道如何应用这个解决方法,因为我不是SQL方面的专家。据我所知,警报表(alerts_7)中缺少一个索引。在googling一下之后,我尝试使用以下命令创建它:
create INDEX on alerts (p_eventid) USING BTREE;
仍然有一个错误(第二个)。
有人已经有过这种情况,并找到了解决的办法?
发布于 2017-12-08 10:55:25
最后有一些时间来处理这个问题,问题是tmp目录对于升级操作来说太小了。在更改my.cnf中的tmp路径并重新启动升级之后,一切都如预期的那样工作!
发布于 2018-04-09 09:04:39
[Z3005] query failed: [1060] Duplicate column name 'p_eventid' [alter table alerts add p_eventid bigint unsigned]
意味着升级脚本试图向alerts
表中添加一个列,但是当前存在一个具有该名称的列!(可能是因为以前的升级尝试失败)
首先,您需要减轻导致它失败的所有其他问题,然后用
alter table alerts drop p_eventid;
并再次尝试运行zabbix_server
以重新尝试数据库升级。
发布于 2017-11-14 16:11:02
方括号中的部分不是一项建议,而是试图发出的命令。现在它失败了,因为列已经存在。
在这种情况下,删除该列并再次启动Zabbix服务器就足够了。在开始升级之前,一定要进行数据库备份。
https://stackoverflow.com/questions/47289695
复制相似问题