2015-09-12 15 views
17

Mam zainstalowany mysql poprzez homebrew. Stworzył prestamoApp_development bazy zacząłem serwera (początek mysql.server), a następnie tworzony jest nowy pusty projekt (szyny nowy prestamoApp -d mysql). Wreszcie skonfigurowany użytkownika i hasło w pliku database.yml takiego:Ruby on Rails nie może połączyć się z bazą danych mysql

default: &default 
    adapter: mysql2 
    encoding: utf8 
    pool: 5 
    username: root 
    password: pqdsimple 
    socket: /tmp/mysql.sock 

development: 
    <<: *default 
    database: prestamoApp_development 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
    <<: *default 
    database: prestamoApp_test 

# As with config/secrets.yml, you never want to store sensitive information, 
# like your database password, in your source code. If your source code is 
# ever seen by anyone, they now have access to your database. 
# 
# Instead, provide the password as a unix environment variable when you boot 
# the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database 
# for a full rundown on how to provide these environment variables in a 
# production deployment. 
# 
# On Heroku and other platform providers, you may have a full connection URL 
# available as an environment variable. For example: 
# 
# DATABASE_URL="mysql2://myuser:[email protected]/somedatabase" 
# 
# You can use this database configuration with: 
# 
# production: 
#  url: <%= ENV['DATABASE_URL'] %> 
# 
production: 
    <<: *default 
    database: prestamoApp_production 
    username: prestamoApp 
    password: <%= ENV['PRESTAMOAPP_DATABASE_PASSWORD'] %> 

Jest to plik gem:

source 'https://rubygems.org' 


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '4.2.4' 
# Use mysql as the database for Active Record 
gem 'mysql2' 
# Use SCSS for stylesheets 
gem 'sass-rails', '~> 5.0' 
# Use Uglifier as compressor for JavaScript assets 
gem 'uglifier', '>= 1.3.0' 
# Use CoffeeScript for .coffee assets and views 
gem 'coffee-rails', '~> 4.1.0' 
# See https://github.com/rails/execjs#readme for more supported runtimes 
# gem 'therubyracer', platforms: :ruby 

# Use jquery as the JavaScript library 
gem 'jquery-rails' 
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks 
gem 'turbolinks' 
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder 
gem 'jbuilder', '~> 2.0' 
# bundle exec rake doc:rails generates the API under doc/api. 
gem 'sdoc', '~> 0.4.0', group: :doc 

# Use ActiveModel has_secure_password 
# gem 'bcrypt', '~> 3.1.7' 

# Use Unicorn as the app server 
# gem 'unicorn' 

# Use Capistrano for deployment 
# gem 'capistrano-rails', group: :development 

group :development, :test do 
    # Call 'byebug' anywhere in the code to stop execution and get a debugger console 
    gem 'byebug' 
end 

group :development do 
    # Access an IRB console on exception pages or by using <%= console %> in views 
    gem 'web-console', '~> 2.0' 

    # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring 
    gem 'spring' 
end 

i tylko w przypadku, gdy file.lock gem:

GEM 
    remote: https://rubygems.org/ 
    specs: 
    actionmailer (4.2.4) 
     actionpack (= 4.2.4) 
     actionview (= 4.2.4) 
     activejob (= 4.2.4) 
     mail (~> 2.5, >= 2.5.4) 
     rails-dom-testing (~> 1.0, >= 1.0.5) 
    actionpack (4.2.4) 
     actionview (= 4.2.4) 
     activesupport (= 4.2.4) 
     rack (~> 1.6) 
     rack-test (~> 0.6.2) 
     rails-dom-testing (~> 1.0, >= 1.0.5) 
     rails-html-sanitizer (~> 1.0, >= 1.0.2) 
    actionview (4.2.4) 
     activesupport (= 4.2.4) 
     builder (~> 3.1) 
     erubis (~> 2.7.0) 
     rails-dom-testing (~> 1.0, >= 1.0.5) 
     rails-html-sanitizer (~> 1.0, >= 1.0.2) 
    activejob (4.2.4) 
     activesupport (= 4.2.4) 
     globalid (>= 0.3.0) 
    activemodel (4.2.4) 
     activesupport (= 4.2.4) 
     builder (~> 3.1) 
    activerecord (4.2.4) 
     activemodel (= 4.2.4) 
     activesupport (= 4.2.4) 
     arel (~> 6.0) 
    activesupport (4.2.4) 
     i18n (~> 0.7) 
     json (~> 1.7, >= 1.7.7) 
     minitest (~> 5.1) 
     thread_safe (~> 0.3, >= 0.3.4) 
     tzinfo (~> 1.1) 
    arel (6.0.3) 
    binding_of_caller (0.7.2) 
     debug_inspector (>= 0.0.1) 
    builder (3.2.2) 
    byebug (6.0.2) 
    coffee-rails (4.1.0) 
     coffee-script (>= 2.2.0) 
     railties (>= 4.0.0, < 5.0) 
    coffee-script (2.4.1) 
     coffee-script-source 
     execjs 
    coffee-script-source (1.9.1.1) 
    debug_inspector (0.0.2) 
    erubis (2.7.0) 
    execjs (2.6.0) 
    globalid (0.3.6) 
     activesupport (>= 4.1.0) 
    i18n (0.7.0) 
    jbuilder (2.3.1) 
     activesupport (>= 3.0.0, < 5) 
     multi_json (~> 1.2) 
    jquery-rails (4.0.5) 
     rails-dom-testing (~> 1.0) 
     railties (>= 4.2.0) 
     thor (>= 0.14, < 2.0) 
    json (1.8.3) 
    loofah (2.0.3) 
     nokogiri (>= 1.5.9) 
    mail (2.6.3) 
     mime-types (>= 1.16, < 3) 
    mime-types (2.6.1) 
    mini_portile (0.6.2) 
    minitest (5.8.0) 
    multi_json (1.11.2) 
    mysql2 (0.4.0) 
    nokogiri (1.6.6.2) 
     mini_portile (~> 0.6.0) 
    rack (1.6.4) 
    rack-test (0.6.3) 
     rack (>= 1.0) 
    rails (4.2.4) 
     actionmailer (= 4.2.4) 
     actionpack (= 4.2.4) 
     actionview (= 4.2.4) 
     activejob (= 4.2.4) 
     activemodel (= 4.2.4) 
     activerecord (= 4.2.4) 
     activesupport (= 4.2.4) 
     bundler (>= 1.3.0, < 2.0) 
     railties (= 4.2.4) 
     sprockets-rails 
    rails-deprecated_sanitizer (1.0.3) 
     activesupport (>= 4.2.0.alpha) 
    rails-dom-testing (1.0.7) 
     activesupport (>= 4.2.0.beta, < 5.0) 
     nokogiri (~> 1.6.0) 
     rails-deprecated_sanitizer (>= 1.0.1) 
    rails-html-sanitizer (1.0.2) 
     loofah (~> 2.0) 
    railties (4.2.4) 
     actionpack (= 4.2.4) 
     activesupport (= 4.2.4) 
     rake (>= 0.8.7) 
     thor (>= 0.18.1, < 2.0) 
    rake (10.4.2) 
    rdoc (4.2.0) 
    sass (3.4.18) 
    sass-rails (5.0.4) 
     railties (>= 4.0.0, < 5.0) 
     sass (~> 3.1) 
     sprockets (>= 2.8, < 4.0) 
     sprockets-rails (>= 2.0, < 4.0) 
     tilt (>= 1.1, < 3) 
    sdoc (0.4.1) 
     json (~> 1.7, >= 1.7.7) 
     rdoc (~> 4.0) 
    spring (1.3.6) 
    sprockets (3.3.4) 
     rack (~> 1.0) 
    sprockets-rails (2.3.3) 
     actionpack (>= 3.0) 
     activesupport (>= 3.0) 
     sprockets (>= 2.8, < 4.0) 
    thor (0.19.1) 
    thread_safe (0.3.5) 
    tilt (2.0.1) 
    turbolinks (2.5.3) 
     coffee-rails 
    tzinfo (1.2.2) 
     thread_safe (~> 0.1) 
    uglifier (2.7.2) 
     execjs (>= 0.3.0) 
     json (>= 1.8.0) 
    web-console (2.2.1) 
     activemodel (>= 4.0) 
     binding_of_caller (>= 0.7.2) 
     railties (>= 4.0) 
     sprockets-rails (>= 2.0, < 4.0) 

PLATFORMS 
    ruby 

DEPENDENCIES 
    byebug 
    coffee-rails (~> 4.1.0) 
    jbuilder (~> 2.0) 
    jquery-rails 
    mysql2 
    rails (= 4.2.4) 
    sass-rails (~> 5.0) 
    sdoc (~> 0.4.0) 
    spring 
    turbolinks 
    uglifier (>= 1.3.0) 
    web-console (~> 2.0) 

BUNDLED WITH 
    1.10.6 

Kiedy próbuję to zrobić:

rake db:schema:dump 

otrzymuję ten błąd:

rake aborted! 
Gem::LoadError: Specified 'mysql2' for database adapter, but the gem is not loaded. Add `gem 'mysql2'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord). 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:177:in `rescue in spec' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:174:in `spec' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_handling.rb:50:in `establish_connection' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/railtie.rb:120:in `block (2 levels) in <class:Railtie>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval' 
/usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook' 
/usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:45:in `block in run_load_hooks' 
/usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:44:in `each' 
/usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:44:in `run_load_hooks' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/base.rb:315:in `<module:ActiveRecord>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/base.rb:26:in `<top (required)>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/mysql_database_tasks.rb:8:in `<class:MySQLDatabaseTasks>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/mysql_database_tasks.rb:3:in `<module:Tasks>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/mysql_database_tasks.rb:2:in `<module:ActiveRecord>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/mysql_database_tasks.rb:1:in `<top (required)>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:50:in `<module:DatabaseTasks>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:37:in `<module:Tasks>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:4:in `<module:ActiveRecord>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:3:in `<top (required)>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/railtie.rb:41:in `block (3 levels) in <class:Railtie>' 
Gem::LoadError: can't activate mysql2 (~> 0.3.13), already activated mysql2-0.4.0. Make sure all dependencies are added to Gemfile. 
/usr/local/lib/ruby/gems/2.2.0/gems/bundler-1.10.6/lib/bundler/rubygems_integration.rb:302:in `block in replace_gem' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/mysql2_adapter.rb:3:in `<top (required)>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:274:in `require' 
/usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:274:in `block in require' 
/usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:240:in `load_dependency' 
/usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:274:in `require' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:175:in `spec' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_handling.rb:50:in `establish_connection' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/railtie.rb:120:in `block (2 levels) in <class:Railtie>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval' 
/usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook' 
/usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:45:in `block in run_load_hooks' 
/usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:44:in `each' 
/usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/lazy_load_hooks.rb:44:in `run_load_hooks' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/base.rb:315:in `<module:ActiveRecord>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/base.rb:26:in `<top (required)>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/mysql_database_tasks.rb:8:in `<class:MySQLDatabaseTasks>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/mysql_database_tasks.rb:3:in `<module:Tasks>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/mysql_database_tasks.rb:2:in `<module:ActiveRecord>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/mysql_database_tasks.rb:1:in `<top (required)>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:50:in `<module:DatabaseTasks>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:37:in `<module:Tasks>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:4:in `<module:ActiveRecord>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:3:in `<top (required)>' 
/usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/railtie.rb:41:in `block (3 levels) in <class:Railtie>' 
Tasks: TOP => db:schema:dump => db:load_config 
(See full trace by running task with --trace) 

Czy ktoś mógłby mi powiedzieć, co jest nie tak? Co muszę zrobić, aby rozwiązać ten problem, zrobiłem tylko pusty projekt.

Odpowiedz

41

Wystarczy obniżyć MySQL Gem gem 'mysql2', '~> 0.3.20'

To bug

+0

Dziękuję Panie mój, który był problem – Fjallbacka

+4

Tak wydaje się, że Rails nie działa jeszcze mysql2 0.4+, używanie wersji 0.3.20, która jest najnowszym że działa. – Shinta

+0

dzięki mate !!!! – Alexis

3

Dla nowych programistów (jak ja) gem 'mysql2', '~> 0.3.20' NIE jest polecenie! Pojawi się błąd "Nieznane polecenie mysql2", jeśli spróbujesz.

vi/Edycja Gemfile i dołączyć zastąpić

gem 'mysql2'

z

gem 'mysql2', '~> 0.3.20'

Zapisz

następnie wpisz polecenie:

bundle install

Następnie ponów próbę wykonania polecenia rake db:________.

Powiązane problemy