我有 Openshift RoR 应用程序。当我尝试运行一些使用数据库的 rake 任务时,它给了我错误:
rake aborted!
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
当我第一次推送我的应用程序时,database.yml 中没有套接字值,我后来添加了它尝试解决此问题,将其设置为套接字的 env 变量,即: “/var/lib/openshift/some_key/mysql//socket/mysql.sock “在 mysql.log 中我也有这个相同的套接字。所以我不明白这个“/var/lib/mysql/mysql.sock”来自哪里。我想我需要以某种方式重建我的应用程序,但它只会重新启动现在“推”。或者这是错误的想法?
编辑:这是我来自 .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']%>
最佳答案
结果服务器在部署时没有运行所有必要的 rake:db 任务。这就是为什么我收到“我们很抱歉...”错误。要通过 ssh 运行 rake 任务,您需要在其前面添加“RAILS_ENV=生产”,如下所示:
RAILS_ENV=production rake db:setup
这两个问题(不一定有联系)让我来找我,就像数据库配置有问题一样。
关于mysql - 打开换档错误。无法通过 mysql.sock 连接到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28701634/