Rails de développement - can't connect to MySQL server on 'localhost' (10061)
Je suis un développeur Rails newbie en utilisant MySQL comme base de données. Je peux réussir à se connecter à MySQL en utilisant la commande:
MySQL -u macDaddy -p
à l'invite de commandes, donc je sais que l'utilisateur est valide et MySQL est en cours d'exécution. Mais lorsque j'essaie d'exécuter
rake db:schema:dump
à la ligne de commande, j'obtiens cette erreur:
râteau abandonnée!
Can't connect to MySQL server on 'localhost' (10061)
Est quelque chose de mal avec ma base de données.yml? Ici, il est:
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: bookmobile
pool: 5
username: macDaddy
password: booklover
host: localhost
socket: mysql
port: 3306
J'ai aussi essayé de supprimer le port et la prise des lignes, mais j'obtiens toujours la même erreur. S'il vous plaît aider. Voici mes versions:
le développement sur Windows 7
MySQL Ver 14.14 distrib 5.5.21 pour win64
La version du serveur 5.5.21
Rails 3.2.1
Merci!
Est mysqld à l'écoute sur 3306? Essayez
netstat -an | grep 3306
. Si vous ne voyez pas quelque chose comme *.3306 *.* LISTEN
alors que pourrait être le problème.OriginalL'auteur LearningRubyOnRails | 2012-05-29
Vous devez vous connecter pour publier un commentaire.
Ma meilleure supposition est que la machine, ce qui vous indique que Windows, a la mise en réseau IPv6 activé. Ainsi, lorsque vous essayez d'accéder à localhost, c'est de résoudre "::1". C'est en fait la machine locale, cependant, par défaut de MySQL s'installe normalement bind-address situé à l'adresse 127.0.0.1, ce qui entraînerait localhost à l'échec dans cette configuration.
Vous pourriez être en mesure de vérifier cela en exécutant
ping localhost
à partir de l'invite de commande, et de voir si vous obtenez une réponse comme:Pour résoudre ce problème, vous pouvez modifier votre config pour spécifier:
Alternativement, vous pouvez changer la configuration de MySQL pour permettre à un autre bind-address, par exemple localhost à la place de 127.0.0.1.
OriginalL'auteur futureal
simplement changer votre hôte host:127.0.0.1
OriginalL'auteur N Khan
Modifier la valeur de hôte dans le base de données.yml être "127.0.0.1" fonctionne. Ou,vous pouvez modifier votre pc fichier hosts, ajouter un élément "localhost 127.0.0.1".
OriginalL'auteur Mr.Right
J'ai eu une erreur similaire, mais c'était parce que le port: 3306 était manquante dans la base de données.yml. Une fois, j'ai ajouté de port: 3306 problème a été résolu.
OriginalL'auteur ziggrat
C'est parce que vous n'avez pas de mot de passe défini dans votre serveur de base de données(mysql), essayez ceci:
OriginalL'auteur Someth Victory
assurez-vous que le numéro de port que vous avez défini lors de la création de MySQL(par exemple: 7777), veuillez ajouter le numéro de port approprié 'nom d'utilisateur' et 'mot de passe'.
dans la base de données.yml dans le répertoire de configuration de votre répertoire app.
OriginalL'auteur Kathirmalan
Assurez-vous que le serveur mysql est en cours d'exécution.
OriginalL'auteur Sanath