【问题标题】:Using MySQL database on two EC2 instances not working on one instance在两个 EC2 实例上使用 MySQL 数据库不能在一个实例上运行
【发布时间】:2013-04-23 15:02:38
【问题描述】:

我正在尝试设置两个 Rails 应用程序。我希望他们两个都使用一个 MySQL 数据库。我的设置是这样的:

使用 Elastic Beanstalk,我设置了两个具有两个不同环境的 Rails 应用程序。我使用 MySQL 数据库设置的应用程序之一。所以现在我有两个 EC2 实例 - 每个 Rails 应用一个和一个 RDS MySQL 实例。

我在两个 EC2 实例中设置了安全组,以便能够通过 port 3306 连接到 MYSQL。

我已设置数据库安全组以授权两个 EC2 实例,并且我使用第二个 EC2 实例的私有 IP 设置 CIDR/IP(在配置 Beanstalk 应用程序时没有设置 MySQL 数据库的实例)

在两个 Rails 应用程序中,我都设置了 database.yml,如下所示:

production:
  adapter: mysql2
  encoding: utf8
  database: <%= ENV['RDS_DB_NAME'] %>
  username: <%= ENV['RDS_USERNAME'] %>
  password: <%= ENV['RDS_PASSWORD'] %>
  host: <%= ENV['RDS_HOSTNAME'] %>
  port: <%= ENV['RDS_PORT'] %>

我使用来自第一个 EC2 实例的 ENV 值为第二个实例(没有 MySQL 数据库的那个)上的生产分配了 ENV 值。

我在这里错过了什么?

我还将我的计算机 IP 地址添加到 DB 安全组,并且我能够使用我用作 ENV 变量的凭据连接到 MySQL 数据库。

【问题讨论】:

    标签: mysql ruby-on-rails ruby-on-rails-3 amazon-ec2 amazon


    【解决方案1】:

    你可能错过了这个:

    socket: /var/lib/mysql/mysql.sock
    

    【讨论】:

    • 谢谢,但它没有帮助。我将它添加到生产部分的 database.yml 中,但它不起作用。该数据库不在本地服务器上 - 它是亚马逊上的一个附加实例。有了这条线,我仍然收到错误Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) (Mysql2::Error)
    • 我在看这个,但不是我的情况。 MySQL 数据库位于远程实例上,因此它没有本地安装在任何一个 EC2 实例上。我只能从一个实例连接到它,这就是问题所在。我认为套接字错误是因为当 rails 找不到远程数据库时,它试图在本地机器上找到它。
    【解决方案2】:

    问题已解决 - 我在 database.yml 文件中设置了数据库凭据,而不是 ENV 变量。每次在弹性豆茎上使用git aws.push 推送都会覆盖环境变量。

    【讨论】:

    • 您采取了哪些步骤来解决此问题?我有同样的问题。
    【解决方案3】:

    就我而言,这是因为我使用了错误的 ENV 变量名。 您可以通过使用eb sshprintenv | grep RDS 连接到您的实例来仔细检查您是否已正确设置所有内容,这应该会为您提供如下信息:

    RDS_HOSTNAME=yourhostname.amazonaws.com
    RDS_DB_NAME=ebdb
    RDS_PASSWORD=yourpassword
    RDS_USERNAME=yourusername
    RDS_PORT=3306
    

    确保这些都反映在您的 config/database.yml 文件中 - 通过使用 &lt;%= ENV['varname'] %&gt; 或硬编码它们。显然,前一种选择更可取。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多