Error number: MY-010365; Symbol: ER_TZ_TRANSITION_TYPE_TABLE_ABBREVIATIONS_EXCEED_SPACE; SQLSTATE: HY000
Message: Error while loading time zone description from mysql.time_zone_transition_type table: not enough room for abbreviations
Error Number:MY-010365; Symbol: ER_TZ_TRANSITION_TYPE_TABLE_ABBREVIATIONS_Exceed_Space;SQLSTATE:HY000
错误说明:
MY-010365错误与时区信息相关,是MySQL不允许用户将时区简写表中的简写超过72个字节的报错码。该报错主要由于尝试添加的时区简写过长导致,或者是用户想要使用MySQL保留的时区而出错。
常见情况:
假设用户在修改某个表(table) 时,使用了MySQL所保留的Zone Info transition type tables中太长的简写,或是没有加载ZoneInfo数据库。此时,就会出现Error Number:MY-010365; Symbol: ER_TZ_TRANSITION_TYPE_TABLE_ABBREVIATIONS_Exceed_Space;SQLSTATE:HY000 报错。
解决方法:
解决MY-010365报错的方法有以下几种:
1. 缩短ZoneInfo transition type访问库中的简写,将时区简写缩短到72个以下的字节;
2. 使用utf8字符集,因为它可以处理更大的字节;
3. 更新MySQL的时区信息,以获取最新的时区信息;
4. 加载ZoneInfo数据库,在这里用户可以定义时区的简写;
5. 对报错中的SQL语句进行重写,将原有的time_zone、TimeZone等字段改为Char类型,超过条件就截取前72字节;
6. 检查MySQL配置文件,保证ZoneInfo transition type访问库中的简写符合要求,使用基本的a-zA-Z0-9_字符;
7. 如果存在多重情况,尝试在时区简写字段上添加限制,增加一刀切设计;
8. 第三方软件可能会自动生成SQL语句并将长达72个字节以上的缩写加入(未经检查),因此,在使用第三方软件时,应当及时检查SQL语句,避免出现这种报错。