Невозможно заполнить базу данных;не работает из-за отказа соединения? - PullRequest
1 голос
/ 18 ноября 2011

Когда я пытаюсь заполнить свое приложение, я получаю сообщение об ошибке:

Невозможно установить соединение, поскольку целевая машина активно от него отказалась.- connect (2)

Я полагаю, что причина в том, что у меня были проблемы с mysql2, поэтому я удалил его вместе с серверами MySQL 5.5 и затем переключился на sqlite3.Я думаю, что сервер для MySQL работает в фоновом режиме, так что это может быть проблемой.Как бы я это исправить?Как отключить локальный хост-сервер Mysql2 или какой-либо другой сервер, вызывающий эту проблему?

Я работаю в 64-разрядной версии Windows 7.

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 Firewall и повторил попытку, но все равно не удалось.Я сделал восстановление системы, но это тоже не сработало.

Вот полное rake db:seed: https://gist.github.com/1375566


решено:

У меня есть другое приложение, в котором я запустил rake db:seed, и оно работало правильно, так что, как отметил принятый ответ от clyfe, проблема была в Sunspot.Я снова собрал свое приложение и остановился на добавлении пятна, и внезапно я получил ошибку:

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

Это означает, что грабли читали мой код внутри моей модели UserPrice, которая имела дело с Sunspot:

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

Все работает как надо.

Ответы [ 3 ]

4 голосов
/ 18 ноября 2011

Вы используете Sunspot для индексации и поиска, как я вижу из вашей сущности https://gist.github.com/1375566
Убедитесь, что сервер Solr запущен до того, как вы начнете.

Что происходит:

  • , когда модель сохраняет
  • , она пытается отправить данные на сервер Solr для индексации
  • , но он не может подключиться

Возможные проблемы:

  • сервер Solr не запущен
  • соединение Sunspot Solr не сконфигурировано в /config/sunspot.yml
  • порт, заблокированный брандмауэром

Если вы еще не запустили экземпляр сервера Solr, вы можете запустить сервер Solr в составе Sunspot с помощью следующей команды rake:

rake sunspot:solr:start
1 голос
/ 18 ноября 2011

Я не думаю, что это из-за mysql, я думаю, что это проблема брандмауэра на порту, к которому вы пытаетесь получить доступ. Вы можете проверить, остановив службу или используя инструментальные средства mysql, чтобы остановить сервер на этом компьютере. Я сомневаюсь, что это решит проблему, так как брандмауэр может создавать помехи.

0 голосов
/ 18 ноября 2011

Закомментируйте пропуск сети в my.cnf в вашей конфигурации MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...