Openshift ERRoR。无法通过mysql.sock连接到db

时间:2015-02-24 16:53:10

标签: mysql ruby-on-rails ruby openshift

我有Openshift RoR应用程序。当我尝试运行一些使用DB的rake任务时,它给了我错误:

rake aborted!
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

当我第一次推送我的应用程序时,database.yml中没有套接字值,我稍后添加它试图修复此问题,将其设置为socket的env变量,即: "在/ var / lib中/ openshift / some_key /mysql//socket/mysql.sock "在mysql.log中我也有同样的套接字。所以我不明白这是什么" /var/lib/mysql/mysql.sock"来自。我想我需要以某种方式重建我的应用程序,但它只会重新启动" push"现在。或者这是错误的想法?

编辑:这是我的.openshift / config中的database.yml。正如我所提到的,我添加了" soket:<%= ENV [' OPENSHIFT_MYSQL_DB_SOCKET']%>"后来,先推后。我刚试过'force_clean_build'虽然标记,它没有帮助。

development:
  adapter: mysql2
  database: database
  username: root
  password: psswd
  host: localhost
test:
  adapter: mysql2
  database: database
  username: root
  password: psswd
  host: localhost
production:
  adapter: mysql2
  database: "<%=ENV['OPENSHIFT_APP_NAME']%>"
  username: "<%=ENV['OPENSHIFT_MYSQL_DB_USERNAME']%>"
  password: "<%=ENV['OPENSHIFT_MYSQL_DB_PASSWORD']%>"
  host:     <%=ENV['OPENSHIFT_MYSQL_DB_HOST']%>
  port:     <%=ENV['OPENSHIFT_MYSQL_DB_PORT']%>
  soket:    <%=ENV['OPENSHIFT_MYSQL_DB_SOCKET']%>

1 个答案:

答案 0 :(得分:1)

关闭服务器并没有运行所有必要的rake:部署时的db任务。这就是我收到的原因&#39;我们很抱歉......&#39;错误。要通过ssh运行rake任务,你需要添加&#34; RAILS_ENV = production&#34;在它之前,像这样:

RAILS_ENV=production rake db:setup

这两个问题(不一定是连接的)使它找我,就像DB配置有问题一样。