2010-06-30 19 views
3

J'ai essayé de déployer l'application de ROR sur le serveur de production, puis a cette erreur:Capistrano deploy: Accès refusé pour l'utilisateur 'root' @ 'localhost' (en utilisant le mot de passe: YES) (Mysql :: Error)

 
Access denied for user 'root'@'localhost' (using password: YES) (Mysql::Error) 

mais quand j'ai couru la commande:

 
rake db:migrate RAILS_ENV=production 

il est passé. Je me connecte également à MySQL depuis la ligne de commande:

mysql -u root -p

il a obtenu à travers, et je peux voir toutes les tables sont créées.

im travaillant sur une branche, dans mon deploy.rb je l'ai déjà mis la branche:

 
set :branch 'myBranch' 

et dans le fichier de configuration apache2, je mis RAILS_ENV aussi:

 
<VirtualHost *:80> 
    ServerName daemon.com 
    DocumentRoot /home/hy/work/log/current/public/ 
    RailsEnv production 
</VirtualHost> 

S'il vous plaît aider, merci !

Répondre

0

Vous avez peut-être déjà vécu ce problème, mais je vous suggère de vérifier que votre fichier config/environments/production.yml contient des informations d'identification valides et qu'il est envoyé dans le référentiel.

Vous avez mentionné que vous avez essayé de faire la migration manuellement sur le serveur. Avez-vous exécuté la migration à partir du même répertoire, où se trouve votre application déployée actuelle?

(/ home/hy/travail/log/courant)

0

Je sais que c'est vieux, mais ce que vous devez faire est de définir default_env dans votre fichier deploy.rb et définir des variables d'environnement.

Quelque chose comme ceci:

set :default_env, { 
    'var1' => 'value1', 
    'var2' => 'value2' 
} 

Cela fonctionne pour Capistrano 3. Espérons que cela aidera tout le monde de tomber sur cette question.

+0

Pourriez-vous faire un essai? – Jeremie