【问题标题】:Cannot seed database; not working because of refused connection?无法播种数据库;由于拒绝连接而无法工作?
【发布时间】:2011-12-31 20:24:44
【问题描述】:

当我尝试为我的应用程序播种时,我收到了错误:

无法建立连接,因为 - 目标机器主动拒绝了它。 - 连接(2)

我相信原因是因为我在使用 mysql2 时遇到问题,所以我将它与 MySQL 5.5 服务器一起卸载,然后切换到 sqlite3。我认为 mysql2 的服务器正在后台运行,所以这可能是问题所在。我将如何解决这个问题?我将如何关闭 Mysql2 本地主机服务器或导致此问题的任何服务器?

我在 Windows 7 64 位上运行。

Rails 3.0.9
SQLite3 1.3.4

谢谢。

注意:我可以很好地迁移和丢弃。

编辑:

config/database.yml

# SQLite version 3.x
#   gem install sqlite3
development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

更新:

我尝试重新启动电脑并从头开始重新制作我的应用程序,但仍然出现错误。禁用 Windows 防火墙/Comodo 防火墙并再次尝试,仍然失败。我进行了系统还原,但这也不起作用。

这是完整的rake db:seedhttps://gist.github.com/1375566


已解决:

我在另一个应用程序中运行了rake db:seed,它运行正常,因此正如 clyfe 接受的答案所指出的那样,太阳黑子就是问题所在。我再次将我的应用程序放在一起并停止添加太阳黑子,突然我得到了错误:

rake db:seed
(in C:/testagain)
Deleting database now...
rake aborted!
undefined method `searchable' for #<Class:0x52cdca0>

这意味着 rake 正在读取我处理太阳黑子的 UserPrice 模型中的代码:

class UserPrice < ActiveRecord::Base
  # Sunspot and Websolr configuration.
  #searchable do
   # text :product_name do
   #   product.name
   # end
 # end
end

我对此进行了注释,并且能够正确播种。然后我继续按以下顺序使用这些命令尝试 sunspot:

rails g sunspot_rails:install
rake sunspot:solr:start (also un-comment model)
rake sunspot:reindex
rails server
rake db:seed

一切正常。

【问题讨论】:

  • 您的数据库配置文件是什么样的?如果 dev sqlite3 和 mysql 之间存在冲突,我会感到惊讶。
  • @DaveNewton 我把文件放在我的编辑:部分。
  • rails 将仅连接您的 database.yml 中的数据库适配器。
  • @xxd 好的,很好的信息。你觉得我该怎么做?如何停止所有连接?
  • 我也遇到了这个问题,感谢您的解决,但我几乎一直在寻找。需要明确的是,正如您所说,问题不在于“太阳黑子”。我认为说“它是太阳黑子”有点误导。例如,当我读到它时,我想“好吧,太阳黑子甚至没有运行,所以它不可能和我的问题一样”。真正的问题是运行 db:seed 时 Sunspot 没有运行。

标签: ruby-on-rails ruby ruby-on-rails-3 sqlite sunspot


【解决方案1】:

您正在使用 Sunspot 进行索引和搜索,正如我从您的要点 https://gist.github.com/1375566 中看到的那样
确保在播种之前启动 Solr 服务器。

会发生什么:

  • 模型保存时
  • 它尝试将数据发送到 Solr 服务器进行索引
  • 但是无法连接

可能的问题:

  • Solr 服务器未启动
  • Sunspot Solr 连接未在/config/sunspot.yml 中正确配置
  • 被防火墙阻止的端口

如果您还没有启动 Solr 服务器实例,您可以使用以下 rake 命令启动 Sunspot 捆绑的 Solr 服务器:

rake sunspot:solr:start

【讨论】:

  • 谢谢,经过一番尝试后,一切正常。毕竟是黑子。
【解决方案2】:

我不认为这是因为 mysql,我认为这是您尝试访问的端口上的防火墙问题。您可以通过停止服务或使用 mysql 工作台停止该机器上的服务器来进行测试。我怀疑这会解决问题,因为防火墙可能会干扰。

【讨论】:

  • 这是什么服务?而且我用的是Sqlite3,MySQL Workbench已经被删除了。
  • 但是你安装了 Mysql 还是从压缩目录安装的?
  • 我也摆脱了 MySQL 5.5 服务器。现在 Sqlite3 正在从 sqlite.exe 运行,如果这就是你的意思。
  • 好吧,我原来的观点是mysql没有干扰它更有可能是你的防火墙
  • 有趣的是,我确实看到我的 Windows 防火墙打开了,所以我关闭了它并关闭了 Comodo。我再次运行 rake db:seed 仍然得到同样的错误,可能是端口问题?顺便说一句,我可以毫无问题地连接到 rails 服务器。
【解决方案3】:

在你的 MySQL 配置中注释掉 my.cnf 中的 skip-networking。

【讨论】:

  • my.cnf?我在哪里可以找到这个文件?我在我的 Rails 应用程序中没有看到它。
  • @JustinRoR:不,你没有 my.cnf,因为你使用的是 sqlite。
  • @xxd 感谢您的澄清,我不知道他在说什么。
猜你喜欢
  • 2014-05-25
  • 2020-10-08
  • 2018-12-25
  • 2022-09-27
  • 1970-01-01
  • 1970-01-01
  • 2013-08-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多