我有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']%>
答案 0 :(得分:1)
关闭服务器并没有运行所有必要的rake:部署时的db任务。这就是我收到的原因&#39;我们很抱歉......&#39;错误。要通过ssh运行rake任务,你需要添加&#34; RAILS_ENV = production&#34;在它之前,像这样:
RAILS_ENV=production rake db:setup
这两个问题(不一定是连接的)使它找我,就像DB配置有问题一样。