Ok, quindi stavo riscontrando esattamente lo stesso problema. Ci sono molti suggerimenti su come modificare parte delle librerie esistenti per far funzionare Python3 con MySQL, ma non ne ho trovati nessuno che funzioni al 100%. Non sono stato in grado di rendere il connettore MySQL Python ufficiale per funzionare con Django e Python 3.3.
Ciò che ha funzionato è stato invece passare alla libreria PyMySQL. Qualche mese fa l'avevo già provato ma allora non funzionava. Ora, c'è una nuova versione, 0.6.1 che ha funzionato immediatamente. Quindi, qualche dettaglio in più:
Il mio ambiente:OSX 10.9, Python 3.3.3, Django 1.6.1, MyPySQL 0.6.1, MySQL Server 5.5 su Windows
Come farlo funzionare:
-
Installa PyMySQL versione 0.6.1 (https://github.com/PyMySQL/PyMySQL/ ):puoi installarlo sia usando pip, cioè :
pip install PyMySQL
oppure scaricando manualmente il pacchetto; c'è una buona documentazione sul loro sito web su come farlo. -
Apri la tua app Django __init__.py e incolla le seguenti righe:
import pymysql pymysql.install_as_MySQLdb()
-
Ora apri impostazioni.py e assicurati che la tua proprietà DATABASE assomigli a questa:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydb', 'USER': 'dbuser', 'PASSWORD': 'dbpassword', 'HOST': 'dbhost', 'PORT': '3306' } }
-
Ecco fatto, dovresti essere in grado di eseguire
python manage.py syncdb
quindi avvia il tuo DB MySQL; vedere l'output di esempio di seguito: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. ...