不能种子数据库;因为拒绝连接而无法工作?

时间:2011-11-18 00:14:09

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

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

  

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

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

我在64位Windows 7上运行。

Rails 3.0.9
SQLite3 1.3.4

感谢。

注意:我可以迁移并放弃。

编辑:

配置/ 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

更新:

我尝试重新启动PC并从头开始重新制作我的应用程序,但仍然出现错误。已禁用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

我评论了这个,并且能够正确播种。然后我按照以下顺序使用这些命令继续尝试太阳黑子:

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

一切都按预期工作。

3 个答案:

答案 0 :(得分:4)

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

会发生什么:

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

可能的问题:

  • Solr服务器未启动
  • 未在/config/sunspot.yml
  • 中核心配置太阳黑子Solr连接
  • 被防火墙阻止的端口

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

rake sunspot:solr:start

答案 1 :(得分:1)

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

答案 2 :(得分:0)

在MySQL配置中注释my.cnf中的跳过网络。