我使用的是橡胶部署Rails应用程序时遇到连接到MySQL的麻烦。 我必须在EC2上手动设置MySQL或应该橡胶已经这样做了? 虽然这是不是所有的帮助,这里是当耙RAN日志输出:
** [out :: db01.memepluspl.us] rake aborted!
** [out :: db01.memepluspl.us]
** [out :: db01.memepluspl.us] Access denied for user ''@'db01.memepluspl.us' to database 'meme_plus_plus_production'
** [out :: db01.memepluspl.us]
** [out :: db01.memepluspl.us]
** [out :: db01.memepluspl.us] Tasks: TOP => db:migrate => environment
在我的情况下,应用程序的名称,我在rubber.yml输入实际上是不同的,那么实际的应用程序名称(项目文件保留占位符名)...
我SSH方式登录的情况下,寻找current/
和cat config/database.yml
然后就试图运行连接命令耙将尝试从东西上运行,且误差在那里,所以我建议不妨更好地调试这是怎么回事
我猜我不得不改变橡胶mysql.yml CONFIGS ...林现在重新创建临时的东西,我认为它至少应该通过这个问题.. GL
如果其他人是否有这个问题,这是因为MySQL现在有默认的匿名用户加入有限。
问题是讨论在这里 。
第一个解决方案存在不够全面,需要一种在该删除所有匿名用户(而不仅仅是本地主机)结束。 这是因为MySQL将用户之前对主机进行验证,所以匿名用户“” @“your.host.com”将优先于“dbuser'@'your.host.com”(记录在MySQL文档 )和橡胶试图用完整主机名进行连接。
编辑您的./config/rubber/deploy-mysql.yml:
rubber.sudo_script "create_master_db", <<-ENDSCRIPT
mysql -u root -e "create database #{env.db_name};"
mysql -u root -e "delete from mysql.user where user='';" <<-- ADD THIS LINE
...
ENDSCRIPT
我不知道舵很多,但看起来它缺少一些配置。 有没有指定的用户,可能没有密码或者。
我不熟悉的橡胶可言,所以我不知道是否应该创建MySQL账户给你,但这里是如何做手工:
mysql -u root
mysql> grant all on meme_plus_plus_production.* to 'user'@'db01.memepluspl.us' identified by 'password';
mysql> flush privileges;
mysql> exit;
您可能需要输入该MySSQL根帐户的密码; 例如,在Ubunutu默认为“密码”。
还要注意,我的例子全权读取并在数据库中指定的用户写权限的每个表。 如果你想使用减少特权查找MySQL授权命令。