Что не так с mysql, установленным через homebrew

#mysql #ruby-on-rails #macos #homebrew

#mysql #ruby-on-rails #macos #homebrew

Вопрос:

Версия для Mac: 10.6.7
Версия Ruby: 1.9.2-p180
Версия Rails: 2.3.5

После установки mysql через brew и запуска rails сервер сообщает

/! ОТКАЗОУСТОЙЧИВЫЙ /! 2011-05-09 11:18:22  0545
 Статус: Внутренняя ошибка сервера 500
 Не удается подключиться к серверу MySQL на '127.0.0.1' (61)
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/connection_adapters/mysql_adapter.rb:589:in `real_connect'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/connection_adapters/mysql_adapter.rb:589:in `подключиться'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/connection_adapters/mysql_adapter.rb:203:in `инициализировать'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/connection_adapters/mysql_adapter.rb:75:in `новый'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/connection_adapters/mysql_adapter.rb:75:in `mysql_connection'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in `new_connection'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:245:in `checkout_new_connection'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:188:in `блок (2 уровня) при оформлении заказа'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in `цикл'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in `блок при оформлении заказа'
 /Users/me/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/monitor.rb:201: в `mon_synchronize'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:183:in `оформить заказ'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:98:in `соединение'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:326:in `retrieve_connection'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_specification.rb:123:in `retrieve_connection'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_specification.rb:115:in `соединение'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:9:in `кэш'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/query_cache.rb:28:in `вызов'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `вызов'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/hoptoad_notifier-2.4.9/lib/hoptoad_notifier/rack.rb:27:in `вызов'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/actionpack-2.3.5/lib/action_controller/failsafe.rb:26:in `вызов'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/hoptoad_notifier-2.4.9/lib/hoptoad_notifier/user_informer.rb:12:in `вызов'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rack-1.0.1/lib/rack/lock.rb:11:in `блокировка при вызове"
 :10:в `синхронизировать"
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rack-1.0.1/lib/rack/lock.rb:11:in `вызов'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:114:in `блокировка при вызове"
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/actionpack-2.3.5/lib/action_controller/reloader.rb:34:in `выполнить'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:108:in `вызов'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rails-2.3.5/lib/rails/rack/static.rb:31:in `вызов'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rack-1.0.1/lib/rack/urlmap.rb:46:in `блокировка при вызове"
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in `каждый'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in `вызов'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rails-2.3.5/lib/rails/rack/log_tailer.rb:17:in `вызов'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rack-1.0.1/lib/rack/content_length.rb:13:in `вызов'
 /Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rack-1.0.1/lib/rack/handler/webrick.rb:50:in `сервис'
 /Users/me /.rvm/rubies/ruby-1.9.2-p180/lib/ruby /1.9.1/webrick/httpserver.rb:111:в `service'
 /Users/me/.rvm/rubies/ruby-1.9.2-p180/lib/ruby /1.9.1/webrick/httpserver.rb:70: в `run'
 /Users/me /.rvm/rubies/ruby-1.9.2-p180/lib/ruby /1.9.1/webrick/server.rb:183: в `блокировать в start_thread'

Комментарии:

1. Можете ли вы вообще войти в mysql (без использования Rails) из командной строки?

Ответ №1:

Я не вижу mysql gem в вашем stacktrace, поэтому подозреваю, что вы, возможно, его не устанавливали. Если это так, то добавьте gem 'mysql' (или gem 'mysql2' , если вы предпочитаете) в свой Gemfile, запустите bundle install и запустите ваш сервер снова.

Кроме того, дважды проверьте, действительно ли вы используете Rails 3, как указано в вашем вопросе. Трассировка стека показывает, что вы используете Rails 2.3. Аналогично, в вашем Gemfile убедитесь, что у вас есть gem 'rails', '3.0.0' , затем запустите bundle install и т.д.

Комментарии:

1. Спасибо, что указали версию rails. Это 2.3.5, но ошибочно было 3.0.0

2. Я подозреваю, что да. Я установил Rails 2.3.5 совсем недавно, и в инструкции по установке в какой-то момент явно указано, что mysql gem не входит в состав Rails в этой версии, поэтому вам нужно gem install mysql заставить MySQL работать.

3. Вы также должны убедиться, что вы действительно запускаете сервер MySQL.