mysql_tzinfo_to_sql ORDER BY 错误

标签 mysql sql tzinfo

我需要为一个项目运行实用程序mysql_tzinfo_to_sql,每当我尝试运行第一个命令时:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

我收到以下错误:

ERROR 1105 (HY000) at line 46426: ORDER BY ignored as there is a user-defined clustered index in the table 'time_zone_transition'

我的理解是因为 ORDER BY 没有被处理,所以不会进一步更新时区,虽然我从来没有接触过这个基础,但我不确定我怎样才能最好地解决这个问题问题。

同样在尝试运行时:

mysql_tzinfo_to_sql tz_file tz_name | mysql -u root -p mysql

我收到以下错误:

mysql_tzinfo_to_sql: Can't create/write to file 'tz_file' (Errcode: 2 "No such file or directory")
Problems with zoneinfo file 'tz_file'

编辑: 我在 macOS Sierra (10.12.6) 上运行 因此,我正试图做所有这些:https://docs.djangoproject.com/en/1.10/ref/databases/#mysql-time-zone-definitions

最佳答案

我有一个答案,我认为它应该是安全的并且应该可以解决您遇到的错误。从文档中,我相信表 time_zone_transition 默认情况下应该是空的。所以,我认为您可以尝试截断此表,然后删除所有索引:

DELETE FROM time_zone_transition

听起来好像这张表上有一个或多个索引导致了问题。我建议只删除所有索引:

SHOW INDEX FROM time_zone_transition

然后对每个索引执行以下操作:

ALTER TABLE time_zone_transition DROP INDEX some_index

最后,尝试再次运行初始命令:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

如果这仍然失败,并出现相同的错误,那么我们试图修复的错误不是问题的根本原因。然后,我们将有更多的工作要做。

关于mysql_tzinfo_to_sql ORDER BY 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45780839/

相关文章:

mysql - 有没有办法知道在特定日期和时间之后添加到 SQL 数据库中的记录数

mysql - 如何将表数据复制到另一个具有增量主键和某些具有增量值的列的重复表。在 mySQL 中

mysql - Sql Server Max() 通过分区 - 转换为 MySql

sql - 存储过程中的条件 UNION

ruby - 通过 Ruby/tzinfo 在给定日期获取时区的 UTC 偏移量?

python - 使用时区打印正确的时间,Python

javascript - 将重复的 mysql 结果分组到同一结果下

sql - 创建多行 "table"作为 SELECT 的一部分

Ruby TZInfo 和 ActiveSupport::TimeZone 无法识别大多数时区缩写

php - 通过 JSON 发送 HTML 代码