Capistrano部署:用户'root'@'localhost'访问被拒绝(使用密码:YES)(Mysql :: Error)

3

我试图将 ROR 应用部署到生产服务器上,但出现了以下错误:

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

但是当我运行以下命令时:

rake db:migrate RAILS_ENV=production

它通过了。我也可以通过命令行连接到 MySQL:

mysql -u root -p 

它成功连接,并且我可以看到所有的表都已创建。

我正在一个分支上工作,在我的 deploy.rb 文件中,我已经设置了分支:

set :branch 'myBranch'

在 Apache2 配置文件中,我也设置了 Rails 环境:

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

请帮忙解决,谢谢!

2个回答

0
你可能已经遇到过这个问题了,但我建议你仔细检查一下你的 config/environments/production.yml 文件是否包含有效的凭据并被推送到代码库中。
你提到你尝试在服务器上手动进行迁移。你是否从与当前部署应用程序相同的目录运行了迁移?
(/home/hy/work/log/current)

0

我知道这个比较旧,但你需要做的是在deploy.rb文件中设置default_env并设置环境变量。

像这样:

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

这适用于Capistrano 3。希望这能帮助到任何遇到这个问题的人。


你能试一下吗? - Jeremie
我对这个解决方案有问题... 这怎么安全? - Erick Maynard
@ErickMaynard 你有什么问题? - Jeremie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接