2014-05-05 2 views
2

J'ai un projet django connecté à une base de données MySQL comme suit:Connexion à base de données MySQL à l'aide django établi

settings.py

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'my_db', 
     'USER': 'username', 
     'PASSWORD': 'mypassword', 
     'HOST': '', 
     'PORT': '', 
    } 
} 

sur l'exécution python manage.py syncdb, il crée la base de données et runserver l'application fonctionne parfaitement et je suis en mesure d'entrer des données dans les modèles en utilisant le panneau d'administration correctement.

Cependant, en essayant de se connecter à la base de données en utilisant MySQL Workbench, il me donne Can't connect to MySQL server on '127.0.0.1' (111) erreur.

j'avais créé la base de données comme suit:

Grant all on my_db.* to 'username'@'localhost' identified by 'mypassword'; 
flush privileges; 

Pourquoi ne Workbench me montrer que l'erreur même si le serveur fonctionne correctement? Merci d'avance!

Editer: Utilisé le mot pythong.

+0

Essayez-vous de vous connecter à la base de données par Workbench lorsque le serveur est en cours d'exécution? Peut-être qu'il y a une sorte de mécanisme de verrouillage. – noisy

+0

@noisy, Chose est, je peux me connecter en utilisant localhost/phpmyadmin lorsque le serveur est en cours d'exécution. La même chose devrait fonctionner dans workbench mais il me donne ce problème. Je n'arrive pas à comprendre pourquoi. – Newtt

Répondre

0

Il se peut que votre serveur MySQL n'écoute que localhost. Dans votre fichier my.cnf, commentez bind-address.

#bind-address = 127.0.0.1 

Redémarrez votre serveur MySQL et voyez si vous pouvez vous connecter à Workbench.

1

J'ai eu un problème similaire, mais il a été résolu en mettant à jour #port et #host dans le fichier de configuration.

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. 
     'NAME': 'vres',      # Or path to database file if using sqlite3. 
     # The following settings are not used with sqlite3: 
     'USER': 'root', 
     'PASSWORD': 'root', 
     'HOST': '127.0.0.1',      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP. 
     'PORT': '3306',      # Set to empty string for default. 
    } 
} 
+0

Pourriez-vous élaborer davantage votre réponse en ajoutant un peu plus de détails sur la solution que vous fournissez? – abarisone

+0

En regardant les paramètres de base de données mentionnés ci-dessus il est clair que les valeurs des paramètres HOST: et PORT ne sont pas définies et je vous suggérerais d'ajouter explicitement l'IP hôte par défaut et l'adresse de port par défaut de votre connexion mysql. Assurez-vous d'abord que votre système n'exécute aucun autre service mysql, par exemple. phymyadmin/wamp/xamp –

Questions connexes