2009-08-19 7 views
3

J'essaye de configurer une application Django pour utiliser mysql.Configurer Django pour utiliser le serveur mysql distant?

Je veux utiliser le serveur mysql disponible sur mon réseau et je ne veux pas installer une copie locale. Mais quand j'essaie d'installer mysqldb, il faut mysql_config de MySQL!

Que faire si je veux utiliser le serveur mysql sur une autre machine?

sh: mysql_config: command not found 
Traceback (most recent call last): 
    File "setup.py", line 15, in <module> 
    metadata, options = get_config() 
    File "~/Dev/MySQL-python-1.2.3c1/setup_posix.py", line 43, in get_config 
    libs = mysql_config("libs_r") 
    File "~/Dev/MySQL-python-1.2.3c1/setup_posix.py", line 24, in mysql_config 
    raise EnvironmentError("%s not found" % (mysql_config.path,)) 
EnvironmentError: mysql_config not found 

Essayé télécharger les fichiers MySQL et pointé "mysql_config" et mysqldb construit.

Mais quand j'ai essayé d'importer mysqldb je reçois:

>>> import MySQLdb 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "build/bdist.macosx-10.5-i386/egg/MySQLdb/__init__.py", line 19, in <module> 
    File "build/bdist.macosx-10.5-i386/egg/_mysql.py", line 7, in <module> 
    File "build/bdist.macosx-10.5-i386/egg/_mysql.py", line 6, in __bootstrap__ 
ImportError: dlopen(/tmp/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg-tmp/_mysql.so, 2): Library not loaded: /usr/local/mysql/lib/libmysqlclient_r.15.dylib 
    Referenced from: /tmp/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg-tmp/_mysql.so 
    Reason: image not found 

Toute indication sur ce que l'erreur est?

Merci

+0

Vous avez oublié de mentionner la plate-forme. Je cours sous Mac OSX. – lud0h

Répondre

3

J'ai finalement obtenu MySQLdb compilé sans installer le serveur MySQL dans mon MacOSX.

Les étapes:

  1. Télécharger le paquet MySQL approprié (tar) pas installé la version et déballer
  2. Télécharger wrapper MySQLdb de MySQL Python bindings
  3. Déballez MySQLdb
  4. Modifier site.cfg pour pointer vers mysql_config en le répertoire que vous avez téléchargé
  5. Suivez les instructions dans MySQLdb (pour l'essentiel, construisez & install)
  6. Copiez le fichier libmysqlclient_r.15.dylib de votre 'mysql/lib' dossier/usr/local/mysql/lib (en supposant que vous avez choisi la version threadsafe)
  7. Maintenant vous êtes prêt à utiliser MySQLdb avec tout serveur MySQL
  8. Vous pouvez tester l'installation en utilisant: python >>> importer MySQLdb
+1

Une autre note pour quelqu'un qui court dans ce genre de chose ... le numéro "15" dans le libmysqlclient_r.15.dylib changera avec la version MySQL que vous avez installée, donc si vous construisez à partir de la source, assurez-vous de le faire avec la bonne version de MySQL installée (juste un addendum à la partie "n'importe quel serveur MySQL" de # 7). J'ai accidentellement eu un problème où j'ai construit un MySQLdb .egg et il cherchait libmysqlclient_r.15.dylib, mais mon système n'avait que libmysqlclient_r.16.dylib (et non, cela ne fonctionne pas si vous le renommez simplement). Bonne question ... m'a aidé à comprendre mon bug avec MySQLdb & pyanttasks. Merci! –

1

Installez une version pré-compilée du pilote MySQLdb. La plupart des distributions Linux le fournissent dans leurs dépôts - par exemple, dans Debian et Ubuntu, il s'appelle python-mysqldb.

De plus, comme il ne s'agit pas de programmation, il est préférable de le déplacer vers Superuser.

+1

Ou à serverfault? Cela ressemble plus à un problème de configuration du serveur –

+0

Basé sur l'indice essayé de trouver une version précompilée, mais n'a pas pu trouver un pour Python 2.5 [http://wiki.python.org/moin/MacPython/Packages] – lud0h

2

Vous devez installer les bibliothèques client de mysql sur la machine exécutant Django pour pouvoir se connecter à un serveur MySQL distant. Le libmysqlclient et le pilote mysql de python. Les détails supplémentaires dépendent de la plate-forme sur laquelle vous exécutez cette opération.

+0

Thx pour l'info , est-il possible d'avoir des bibliothèques client MySQL? J'ai regardé le site Web MySQL et trouvé seulement les paquets d'installation? – lud0h

Questions connexes