121👍
Looks like error caused Django’s 1.6 timezone functionality changes. The docs now mention this error specifically (bug report, link to docs).
You have to load timezone tables into mysql (http://dev.mysql.com/doc/refman/5.6/en/mysql-tzinfo-to-sql.html).
Try execute on your database server:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -D mysql -u root -p
And then run “flush tables” or “flush query cache”, otherwise the problem may not disappear even though you’ve loaded the correct timezone data:
mysql -u root -p -e "flush tables;" mysql
updated by @qris
20👍
What worked for me:
1. Populate the timezone definitions in the ‘mysql’ table
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
2. Flush tables
mysql -u root -p -e "flush tables;" mysql
3. Restart mysql
sudo service mysql restart
- [Django]-Django admin TabularInline – is there a good way of adding a custom html column?
- [Django]-Django signals vs. overriding save method
- [Django]-Django – Rotating File Handler stuck when file is equal to maxBytes
16👍
For MacOS users I found solution here (in comment):
mysql_tzinfo_to_sql /usr/share/zoneinfo | sed -e "s/Local time zone must be set--see zic manual page/local/" | mysql -u root mysql
Because on MacOS we have error looks like this:
$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u roomysql
Warning: Unable to load '/usr/share/zoneinfo/+VERSION' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Asia/Riyadh87' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Asia/Riyadh88' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Asia/Riyadh89' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Mideast/Riyadh87' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Mideast/Riyadh88' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Mideast/Riyadh89' as time zone. Skipping it.
ERROR 1406 (22001) at line 38981: Data too long for column 'Abbreviation' at row 1
- [Django]-Chaining multiple filter() in Django, is this a bug?
- [Django]-Reference list item by index within Django template?
- [Django]-__init__() got an unexpected keyword argument 'mimetype'
9👍
For Windows, take the following steps:
- stop the service
- download the files provided by MySQL but note they go in
C:\ProgramData\MySQL\MySQL Server VERSION\data\mysql
not in
C:\Program Files\MySQL\MySQL Server VERSION\data
at least on Windows 7 as of 2014. - I also modified C:\Program Files\MySQL\MySQL Server VERSION\my.ini to add
default-time-zone = 'UTC'
per the tips here. Then restart the service.
- [Django]-@csrf_exempt does not work on generic view based class
- [Django]-Negating a boolean in Django template
- [Django]-Django URLS, how to map root to app?
6👍
For anyone else passing through here with the same issue on Mavericks I was getting the error mentioned by Anton whereby I kept getting;
ERROR 1406 (22001) at line 38981: Data too long for column 'Abbreviation' at row 1
So I used mysql_tzinfo_to_sql tz_file tz_name
from the MySQL docs to load the specific time zones that I wanted;
mysql_tzinfo_to_sql /usr/share/zoneinfo/GMT GMT | mysql -u root -p mysql
mysql_tzinfo_to_sql /usr/share/zoneinfo/UTC UTC | mysql -u root -p mysql
And now Django isn’t returning errors so I’m happy 😀
- [Django]-Convert Django Model object to dict with all of the fields intact
- [Django]-Django testing model with ImageField
- [Django]-How to find pg_config path
2👍
The Django docs actually talk about this problem:
I get an error “Are time zone definitions for your database and pytz installed?” pytz is installed, so I guess the problem is my database?
If you are using MySQL, see the Time zone definitions section of the MySQL notes for instructions on loading time zone definitions.
If you follow that link, you get this advice:
If you plan on using Django’s timezone support, use
mysql_tzinfo_to_sql
to load time zone tables into the MySQL database. This needs to be done just once for your MySQL server, not per database.
Here’s the command:
mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql mysql
- [Django]-Detect django testing mode
- [Django]-Difference between objects.create() and object.save() in django orm
- [Django]-Django.db.utils.IntegrityError: duplicate key value violates unique constraint "django_migrations_pkey"
1👍
Loading Time Zone for Mysql solved the problem for me.
If you are on windows, follow these instructions :
Step #1: Download the package that contains the data files of pre-built time zone tables.
http://dev.mysql.com/downloads/timezones.html
Step #2: Unzip the downloaded ZIP file to a folder on your Desktop.
Step #3: Stop MySQL Server.
For Xampp and Wamp use their GUI or stop the mysql service from the Task Manager.
Step #4: Open mysql subdirectory of your MySQL server’s data directory.
For me it is C:\xampp\mysql\data\mysql
Step #5: Overwrite time zone data files with the downloaded version.
Copy all 15 data files from your unzipped folder and paste into data folder for the mysql system database. Overwrite all these .frm, .MYD, and .MYI files.
Step #6: Restart MySQL server.
And the job is done 🙂
source : http://www.geeksengine.com/article/populate-time-zone-data-for-mysql.html
- [Django]-Django override save for model only in some cases?
- [Django]-How can I get MINIO access and secret key?
- [Django]-Creating Custom Filters for list_filter in Django Admin