MySQL不会在EC2上连接有橡胶部署(MySQL won't connect on EC2

2019-09-18 08:30发布

我使用的是橡胶部署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

Answer 1:

在我的情况下,应用程序的名称,我在rubber.yml输入实际上是不同的,那么实际的应用程序名称(项目文件保留占位符名)...

我SSH方式登录的情况下,寻找current/cat config/database.yml然后就试图运行连接命令耙将尝试从东西上运行,且误差在那里,所以我建议不妨更好地调试这是怎么回事

我猜我不得不改变橡胶mysql.yml CONFIGS ...林现在重新创建临时的东西,我认为它至少应该通过这个问题.. GL



Answer 2:

如果其他人是否有这个问题,这是因为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


Answer 3:

我不知道舵很多,但看起来它缺少一些配置。 有没有指定的用户,可能没有密码或者。



Answer 4:

我不熟悉的橡胶可言,所以我不知道是否应该创建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授权命令。



文章来源: MySQL won't connect on EC2 deploying with Rubber