【问题标题】:cannot connect rails app to remote mysql database无法将 Rails 应用程序连接到远程 mysql 数据库
【发布时间】:2012-10-09 08:11:47
【问题描述】:

我在将我的 rails 2.3.5 应用程序连接到远程数据库时遇到问题。

在我的 database.yml 我有:

development:
  adapter: mysql
  database: master
  username: user
  password: password
  host: 192.168.1.113

我得到的错误是:

无法通过socket '/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器(2)

我知道问题不在于权限或用户设置,因为当我使用相同的 mysql gem 运行一个简单的 ruby​​ 脚本时,它可以工作。我的 python 脚本也可以连接,我可以通过 CLI 使用mysql -u user -ppass -h 192.168.1.113 进行连接

我似乎无法让 rails 使用 192.168.1.113 而不是 localhost。

感谢任何提示。

【问题讨论】:

  • 在 cli 中您使用密码作为通行证,在 database.yml 中您将其设置为“密码”
  • 对,我的错字。 cli 连接有效,rails 连接无效,谢谢
  • 问题解决了吗?我有同样的问题。

标签: ruby-on-rails mysql2


【解决方案1】:

试试这个配置,让我知道它是否有效

<% socket_locations = %w[/opt/local/var/run/mysql5/mysqld.sock /var/lib/mysql/mysql.sock /tmp/mysql.sock] %>

development:
  adapter: mysql
  encoding: utf8
  database: master
  username: user
  password: password
  host: 192.168.1.113
  socket: <%= socket_locations.detect { |f| File.exists?(f) } %>

【讨论】:

  • 您可以在开发以外的其他环境中尝试它。创建您自己的自定义环境,例如 localdemo 或类似的东西。这是另一个类似的问题 stackoverflow.com/questions/4195255/…
  • 抱歉,真的不知道如何创建自定义环境并连接到它。至少,我不明白它是如何在示例或链接中完成的......谢谢
  • 链接很棒,但得到了相同的结果.. gist.github.com/3914690 谢谢
  • 另一种简单的测试方法是切换到脚本/控制台模式并使用 ActiveRecord.establish_connection 方法。文档在这里apidock.com/rails/ActiveRecord/Base/establish_connection/class。这将帮助您确定您的 mysql 适配器是否存在任何问题。
  • 天哪,成功了。在脚本/控制台中建立连接工作,但 database.yml 似乎被忽略或 :host 参数被忽略。
猜你喜欢
  • 2019-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2020-11-26
  • 2014-08-26
相关资源
最近更新 更多