1298: Unknown or incorrect time zone(未知或不正确的时区)
MySQL含义
指定的时区名称未被 MySQL 识别。CONVERT_TZ() 调用、time_zone 设置或引用命名时区(例如 'Europe/Istanbul')的操作失败,因为服务器上未定义该时区。
原因
MySQL 要使用命名时区,必须加载 mysql 模式中的时区表(time_zone、time_zone_name 等)。如果这些表为空,只有数字偏移量('+03:00')可用;命名时区未知,会引发此错误。
解决方法
加载时区表。在 Linux 上,用 mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql 导入系统 zoneinfo 数据;然后重启服务器或运行 FLUSH TABLES。如果无法加载命名时区,使用数字偏移量('+03:00')。确认名称拼写正确(大小写、'Europe/Istanbul')。
同一数据库的其他条目
- 1197Multi-statement transaction required more than 'max_binlog_cache_size'(多语句事务所需空间超过了 'max_binlog_cache_size')
- 1785Statement violates GTID consistency(语句违反 GTID 一致性)
- 3024Query execution was interrupted, maximum statement execution time exceeded(查询执行被中断,超出最大语句执行时间)
- 1418Function has none of DETERMINISTIC, NO SQL, or READS SQL DATA (binary logging enabled)(函数未声明 DETERMINISTIC、NO SQL 或 READS SQL DATA 中的任何一项)
- 1231Variable can't be set to the value of ...(变量不能设置为 ... 的值)