Ok, så jag upplevde exakt samma problem. Det finns massor av förslag på hur du kan modifiera delar av befintliga bibliotek för att få Python3 att fungera med MySQL, men jag hittade inte någon av dem att fungera till 100%. Jag kunde inte få den officiella MySQL Python-anslutningen att fungera med Django och Python 3.3.
Det som fungerade var att byta till PyMySQL-biblioteket istället. För några månader sedan provade jag det redan men det fungerade inte för mig då. Nu finns det en ny version, 0.6.1 som fungerade direkt. Så, några fler detaljer:
Min miljö:OSX 10.9 , Python 3.3.3, Django 1.6.1, MyPySQL 0.6.1, MySQL Server 5.5 på Windows
Så här får du det att fungera:
-
Installera PyMySQL version 0.6.1 (https://github.com/PyMySQL/PyMySQL/ ):du kan installera det antingen genom att använda pip, dvs.:
pip install PyMySQL
eller genom att manuellt ladda ner paketet; det finns en bra dokumentation på deras hemsida om hur man gör det. -
Öppna din Django-app __init__.py och klistra in följande rader:
import pymysql pymysql.install_as_MySQLdb()
-
Öppna nu settings.py och se till att din DATABASE-egenskap ser ut så här:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydb', 'USER': 'dbuser', 'PASSWORD': 'dbpassword', 'HOST': 'dbhost', 'PORT': '3306' } }
-
Det är allt, du borde kunna köra
python manage.py syncdb
så init din MySQL DB; se exempelutdata nedan:Creating tables ... Creating table django_admin_log Creating table auth_permission Creating table auth_group_permissions ... ... Creating table socialaccount_socialtoken You just installed Django's auth system, which means you don't have any superusers defined. ...