0

我目前正在尝试将我的 Rails 4 应用程序部署到 AWS,但每次尝试在 AWS 上查看应用程序时,都会出现应用程序错误。我检查日志并查看:

无法通过套接字'/var/lib/mysql/mysql.sock'连接到本地MySQL服务器(2)

我一直在阅读几本书,例如:this,但我没有任何运气尝试这些不同的解决方案,而且我快把自己逼疯了。

该应用程序在本地运行良好。

以下是一些细节:

  • 我安装了 Mysql 和 Mysql 服务器
  • 该服务正在运行(再次一切都按预期在本地运行)

这是 my.cnf 的 [client] 部分,位于 /etc/mysql/

[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock

我看到一些关于 mysqld 的建议,其他 mysql - 我不明白其中的区别。

数据库.yml

development:
  adapter: mysql2
  encoding: utf8
  database: wp_development
  pool: 5
  username: root
  password: **Left out
  host: localhost

我今天刚刚下载了 MySql,所以我使用的是 5.5,最新版本。*我正在运行 Linux。

有人可以指出我的解决方案吗?

谢谢!

4

2 回答 2

0

如果要在本地连接,则应在 database.ymlsocket: /var/run/mysqld/mysqld.sock的配置中添加。development

此外,在 AWS 上运行您的应用程序时,请确保您的 RAILS_ENV 正确。如果未设置,则应为development. 但我不确定你是如何启动你的应用程序的。

于 2013-09-15T03:39:31.800 回答
0

原因可能是您的 Gemfile 中指定的套接字路径可能是错误的。

首先,找到你的套接字文件:

mysqladmin variables | grep socket

对我来说,这给出了:

| socket  /var/run/mysqld/mysqld.sock 

然后,将此行添加/var/run/mysqld/mysqld.sock 到套接字字段中的 config/database.yml 中。请参阅以下示例

例子: socket: /var/run/mysqld/mysqld.sock

发展模式

development:
  adapter: mysql2
  host: localhost
  username: root
  password: xxxx
  database: xxxx
  socket: /var/run/mysqld/mysqld.sock #  this line

生产模式

production:
  adapter: mysql2
  host: localhost
  username: root
  password: xxxx
  database: xxxx
  socket: /var/run/mysqld/mysqld.sock  #  this line

测试模式

test:
  adapter: mysql2
  host: localhost
  username: root
  password: xxxx
  database: xxxx
  socket: /var/run/mysqld/mysqld.sock  #  this line
于 2015-05-28T18:30:40.230 回答