2010-07-31 4 views
0

J'ai configuré Mysql5, mysql5-server et py26-mysql en utilisant Macports. J'ai ensuite démarré le serveur mysql et j'ai pu démarrer l'invite avec mysql5Django MySql setup

Dans mes settings.py j'ai changé database_engine en "mysql" et j'ai mis "dev.db" dans database_name.

J'ai laissé le nom d'utilisateur et le mot de passe vides car la base de données n'existe pas encore.

Quand je courais python manage.py syncdb, django a soulevé une erreur

« django.core.exceptions.ImproperlyConfigured: Erreur sur le module de chargement MySQLdb: Module dynamique ne définit pas la fonction init (de init_mysql)`

Comment puis-je résoudre ce? Dois-je créer la base de données en premier? est-ce autre chose?

+2

Utilisez-vous la version Python de MacPorts? En règle générale, vous ne pouvez pas utiliser la version système de Python avec les modules d'extension MacPorts-obtenus. –

+0

Non J'utilisais python 2.6 que j'avais installé moi-même. J'ai aussi des environnements virtuels fonctionnant comme j'utilise Pinax. Dois-je installer python 2.6 à partir de macports? rien d'autre? – Ali

Répondre

1

Vous devez installer MySQLdb: http://sourceforge.net/projects/mysql-python/

Cela peut être un processus douloureux en fonction de votre configuration. Voir d'autres discussions sur le SO concernant MySQLdb installer sur Mac OS X:

How to install MySQLdb (Python data access library to MySQL) on Mac OS X?

EDIT: Désolé, écrémé passé le fait que vous MySQLdb déjà installé via py26-mysql, mais cette erreur semble indiquer quelque chose qui allait mal avec cette installation. J'ai eu beaucoup de problèmes avec MySQLdb sur Mac OS X, toujours quelque chose de différent que je dois faire pour le faire fonctionner.

1

syncdbsyncdb ne crée pas de base de données pour vous - il crée uniquement des tables qui n'existent pas déjà dans votre schéma. Vous devez:

  • Créer un utilisateur pour 'posséder' la base de données (root est un mauvais choix).
  • Créez la base de données avec cet utilisateur.
  • Mettez à jour les paramètres de la base de données Django avec le nom de base de données, l'utilisateur et le mot de passe corrects.
+0

lorsque je crée la base de données à partir de l'invite mysql, où stocke-t-elle la base de données? comment puis-je trouver le chemin pour cela? – Ali

+1

@Ali, cela dépend de votre système d'exploitation et de vos fichiers de configuration. Sur la plupart des Unix, vous trouverez les fichiers de base de données sous/var/lib/mysql. Pour plus de détails, voir: http://dev.mysql.com/doc/refman/5.5/fr/installation-layouts.html –