3

我有一个 ec2 服务器和 rds 服务器。和一个 Ruby On Rails 应用程序连接到具有这些设置的 rds 在本地 ENV 中为我工作:

host: myappnameandhash.us-west-2.rds.amazonaws.com
adapter: mysql2
encoding: utf8
reconnect: false
database: mainDb
pool: 20
username: root
password: xxxx
socket: /var/run/mysqld/mysqld.sock
port: 3306

但是在我的 EC2 服务器上,我没有那个 mysqld.sock 文件,所以我收到了这个错误:

FATAL: 连接 MySQL 失败 (error=Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2))

我需要安装什么才能拥有插座?

谢谢

更新:

我删除了套接字定义和端口。我使用 capistrano 进行部署,现在我 ssh 到我的服务器并转到“当前”文件夹。在那里我尝试运行:rake ts:start,我得到以下信息:

耙中止!无法通过套接字 '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)

但我什至在我的 database.yml 文件中都没有套接字定义

4

3 回答 3

2

从您的 database.yml 文件中删除套接字和端口号,然后尝试,它会工作。

于 2013-04-05T10:59:41.223 回答
1

您必须指定 RDS 的“主机”,并在 RDS 中配置安全组以允许您的实例连接到它。

于 2013-04-05T20:28:24.843 回答
0

我知道这已经有一段时间了,我的 EC2 服务器连接到 RDS 时遇到了这个问题。想分享一下我是如何解决这个问题的。

首先从 database.yml 帮助中删除socketport

#In your database.yml

development:
  #some configuration

staging:
  #some configuration

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  pool: 20
  host: url.to.rds.server
  database: your-database
  username: your-username
  password: your-password

要在生产环境中运行这个 rake 命令,您需要指定您的rails-env,例如,如果您正在使用production环境,它应该是

bundle exec rake ts:start RAILS_ENV=production
于 2017-01-12T14:30:40.817 回答