2017-08-20 3 views
1

je dois exécuter l'utilitaire mysql_tzinfo_to_sql pour un projet et chaque fois que je tente de lancer la première commande:ORDRE mysql_tzinfo_to_sql PAR erreur

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

Je reçois l'erreur suivante:

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

Ma compréhension est parce que le ORDER BY n'est pas traité, il ne va pas aller plus loin dans la mise à jour des fuseaux horaires, bien que je n'ai jamais touché à cette base, je ne suis pas sûr de la meilleure façon de résoudre ce problème.

également en essayant de courir:

mysql_tzinfo_to_sql tz_file tz_name | mysql -u root -p mysql 

J'obtiens l'erreur suivante:

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' 

EDIT: Je suis en cours d'exécution sur une macOS Sierra (10.12.6) Et j'étais essayer de faire tout cela à cause de cela: https://docs.djangoproject.com/en/1.10/ref/databases/#mysql-time-zone-definitions

+2

Ce n'est pas une réponse, mais vous devez nous indiquer si vous utilisez Windows ou Linux. La configuration des tables de fuseaux horaires est légèrement différente sur chaque type d'OS. –

+0

Bon point, juste mis à jour le commentaire! – AKFourSeven

Répondre

0

J'ai une réponse que je pense devrait être sûr et devrait contourner l'erreur que vous rencontrez. De la documentation, je crois que la table time_zone_transition devrait être vide par défaut. Donc, je pense que vous pouvez tronquer cette table, puis retirer tous les indices:

DELETE FROM time_zone_transition 

Cela ressemble en quelque sorte il y a un ou plusieurs indices sur ce tableau qui sont à l'origine des problèmes. Je recommande simplement supprimer tous les indices:

SHOW INDEX FROM time_zone_transition 

Ensuite, procédez comme suit pour chaque index:

ALTER TABLE time_zone_transition DROP INDEX some_index 

Enfin, essayez d'exécuter votre commande initiale à nouveau:

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

Si cela échoue encore, avec la même erreur, l'erreur que nous essayons de résoudre n'est pas la cause du problème. Ensuite, nous aurons plus de travail à faire ici.

+0

L'INDEX ici est la clé primaire, il ressemble à ce qui suit: '' 'PRIMARY KEY (' Time_zone_id', 'Transition_time')' '' donc je me demande si la suppression est une bonne idée? – AKFourSeven