mysql - 打开换档错误。无法通过 mysql.sock 连接到数据库

标签 mysql ruby-on-rails ruby openshift

我有 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/

相关文章:

mysql - 2加入mysql之间的区别

mysql - 由于变量定义,在存储过程中选择时使用 ':=' 失败

ruby-on-rails - 如何使用 Ruby on Rails Devise 库为两个模型提供两个不同的模板

ruby-on-rails - Rails 发条不运行代码

mysql - 三个表的总和(金额)返回 null

javascript - 使用 php 中的选择显示我的数据库表

ruby-on-rails - 带有翻译模型名称的 Rails i18n

mysql - Ruby on Rails 的 implode 和 explode 函数来改变日期格式

ruby-on-rails - FriendlyId 在模型验证之前触发。我该如何解决这个问题?

ruby - 通过 ruby​​ sdk 将文件上传到 s3 时如何使用服务器端加密?