ActiveRecord::ConnectionNotEstablished

Hi,

I am trying the tutorial in:

when I try to navigate to http://localhost:3000 after the 4.3 change I get the error : ActiveRecord::ConnectionNotEstablished and I don't know how to solve it the database.yml file is:   adapter => mysql   host => 127.0.0.1   database => blog   username => root   password => *****

my gems: rails 3.1.3 activerecord 3.1.3 mysql 2.8.1

What to do, please? regards

Hi,

I am trying the tutorial in: Getting Started with Rails — Ruby on Rails Guides when I try to navigate to http://localhost:3000 after the 4.3 change I get the error : ActiveRecord::ConnectionNotEstablished and I don't know how to solve it the database.yml file is: adapter => mysql host => 127.0.0.1 database => blog username => root password => *****

Did rake db:create that you did earlier succeed. I note that you are using mysql rather than sqlite, is that intentional? Can you access the db via your mysql server by other means? I think you should probably specify mysql2 as the adaptor in database.yml. At least that is what I have.

Colin

yes rake db:create succeded, it ended without error I used mysql2 and didn't work too

yes rake db:create succeded, it ended without error I used mysql2 and didn't work too

Can you post the full error message and stack trace? Use mysql2.

Colin

hi, this is the stack trace:

activerecord (3.1.3) lib/active_record/connection_adapters/abstract/connection_pool.rb:409:in `retrieve_connection' activerecord (3.1.3) lib/active_record/connection_adapters/abstract/connection_specification.rb:115:in `retrieve_connection' activerecord (3.1.3) lib/active_record/connection_adapters/abstract/connection_specification.rb:89:in `connection' activerecord (3.1.3) lib/active_record/query_cache.rb:67:in `rescue in call' activerecord (3.1.3) lib/active_record/query_cache.rb:61:in `call' activerecord (3.1.3) lib/active_record/connection_adapters/abstract/connection_pool.rb:477:in `call' actionpack (3.1.3) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call' activesupport (3.1.3) lib/active_support/callbacks.rb:392:in `_run_call_callbacks' activesupport (3.1.3) lib/active_support/callbacks.rb:81:in `run_callbacks' actionpack (3.1.3) lib/action_dispatch/middleware/callbacks.rb:28:in `call' actionpack (3.1.3) lib/action_dispatch/middleware/reloader.rb:68:in `call' rack (1.3.6) lib/rack/sendfile.rb:101:in `call' actionpack (3.1.3) lib/action_dispatch/middleware/remote_ip.rb:48:in `call' actionpack (3.1.3) lib/action_dispatch/middleware/show_exceptions.rb:47:in `call' railties (3.1.3) lib/rails/rack/logger.rb:13:in `call' rack (1.3.6) lib/rack/methodoverride.rb:24:in `call' rack (1.3.6) lib/rack/runtime.rb:17:in `call' activesupport (3.1.3) lib/active_support/cache/strategy/local_cache.rb:72:in `call' rack (1.3.6) lib/rack/lock.rb:15:in `call' actionpack (3.1.3) lib/action_dispatch/middleware/static.rb:53:in `call' railties (3.1.3) lib/rails/engine.rb:456:in `call' rack (1.3.6) lib/rack/content_length.rb:14:in `call' railties (3.1.3) lib/rails/rack/log_tailer.rb:14:in `call' rack (1.3.6) lib/rack/handler/webrick.rb:59:in `service' C:/Ruby192/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service' C:/Ruby192/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run' C:/Ruby192/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'

and I switch to mysql2 regards

Can you repeat rake db:create and copy/paste the complete command line and the results here. Then do the same for rake db:migrate.

If those work then start the server and browse to http://localhost:3000 and show the complete output from the server window, except you can just show the start of the stack trace if it is the same as above. It is a lot less annoying to have too much information than it is to have to keep going back and asking for more.

Finally post the whole of database.yml.

Colin

rake db:create : ends without any message rake db:migrate: ends with error message

** Invoke db:migrate (first_time) ** Invoke environment (first_time) ** Execute environment ** Invoke db:load_config (first_time) ** Invoke rails_env (first_time) ** Execute rails_env ** Execute db:load_config rake aborted! adapter => mysql host => 127.0.0.1 database => blog username => root password =

aggouni database is not configured

C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/active_record/connect ion_adapters/abstract/connection_specification.rb:62:in `establish_connection' C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/active_record/connect ion_adapters/abstract/connection_specification.rb:60:in `establish_connection' C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/active_record/connect ion_adapters/abstract/connection_specification.rb:55:in `establish_connection' C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/active_record/railtie .rb:69:in `block (2 levels) in <class:Railtie>' C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.1.3/lib/active_support/lazy_ load_hooks.rb:36:in `instance_eval' C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.1.3/lib/active_support/lazy_ load_hooks.rb:36:in `execute_hook' C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.1.3/lib/active_support/lazy_ load_hooks.rb:43:in `block in run_load_hooks' C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.1.3/lib/active_support/lazy_ load_hooks.rb:42:in `each' C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.1.3/lib/active_support/lazy_ load_hooks.rb:42:in `run_load_hooks' C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/active_record/base.rb :2190:in `<top (required)>' C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/active_record/railtie s/databases.rake:6:in `block (2 levels) in <top (required)>' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `block in execute' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execut e' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain' C:/Ruby192/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke _with_call_chain' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:176:in `block in invoke_prerequisites' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:174:in `each' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:174:in `invoke _prerequisites' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:157:in `block in invoke_with_call_chain' C:/Ruby192/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke _with_call_chain' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke ' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in ` block (2 levels) in top_level' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in ` each' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in ` block in top_level' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:88:in ` top_level' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:66:in ` block in run' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:63:in ` run' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)

'

C:/Ruby192/bin/rake:19:in `load' C:/Ruby192/bin/rake:19:in `<main>' Tasks: TOP => db:migrate => db:load_config

regards,

I am not sure you should have told us the password. I thought you said you had switched to mysql2. The above says you are using mysql. Try again with mysql2. Don't just say it makes no difference, post the result again.

Also have you have confirmed that the database has been created? You can do this using mysql command line.

Colin

It was just a copy/paste error, and I change it as fast as possible please erase the part of the pwd else I try it too with mysql2 and I had the same message I create the db manually with Mysql workbench regards,

It was just a copy/paste error, and I change it as fast as possible please erase the part of the pwd

Too late, it is distributed around the internet now, there is no way of deleting it. I suggest you change the password and if you have used that password for anything else then you change it there too. Quickly.

else I try it too with mysql2 and I had the same message

It is impossible that it had exactly the same message. I specifically asked that you don't just say that it made no difference, I asked that you post the result again. I cannot help unless you provide all the information I ask for.

I create the db manually with Mysql workbench regards,

It is a pity you did not mention that before. When you said that rake db:create worked ok then that suggests that it successfully created the database, but now you are telling me that you did not create the db that way. At the start you said you were working through a tutorial, did it not tell you to create the db using rake db:create?

I think you should remove the database and see if rake db:create will create it. If not then post the result here. Is there anything else of possible significance that you have not told us?

Colin

Ok,

I dropped the schema blog, I change the pwd and I change the adapter like this: development:   adapter: mysql2   encoding: utf8   database: blog_dev   pool: 5   username: root   password:   socket: /tmp/mysql.sock

I execute rake db:create and I get the following error stack:

** Invoke db:create (first_time) ** Invoke db:load_config (first_time) ** Invoke rails_env (first_time) ** Execute rails_env ** Execute db:load_config ** Execute db:create rake aborted! uninitialized constant Mysql2 C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/active_record/railtie s/databases.rake:81:in `rescue in create_database' C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/active_record/railtie s/databases.rake:54:in `create_database' C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/active_record/railtie s/databases.rake:42:in `block (2 levels) in <top (required)>' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `block in execute' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execut e' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain' C:/Ruby192/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke _with_call_chain' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke ' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-.9.2.2/lib/rake/application.rb:116:in`invoke_task' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-.9.2.2/lib/rake/application.rb:94:in `block (2 levels) in top_level' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-.9.2.2/lib/rake/application.rb:94:in `each' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-.9.2.2/lib/rake/application.rb:94:in `block in top_level' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-.9.2.2/lib/rake/application.rb:133:in`standard_exception_handling' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-.9.2.2/lib/rake/application.rb:88:in `top_level' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-.9.2.2/lib/rake/application.rb:66:in `block in run' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-.9.2.2/lib/rake/application.rb:133:in`standard_exception_handling' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-.9.2.2/lib/rake/application.rb:63:in `run' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>' C:/Ruby192/bin/rake:19:in `load' C:/Ruby192/bin/rake:19:in `<main>' Tasks: TOP => db:create

Is it a missing gem?

Have you got gem 'mysql2' in Gemfile, and have you run bundle install?

If you think you have then do it again anyway, check whether it still fails, and post the output from bundle install and post Gemfile.

Colin

I found this too in internet, but I don't know how to do it? how to get gem mysql2 in gemfile and what gemfile exactly?

regards,

The file is the file Gemfile in the root of your rails project (this file is mentioned in the tutorial). I think maybe you would be best to follow the tutorial /exactly/ for the moment, rather than trying to use mysql. Then when you have worked through that simple one go on to railstutorial.org (which is free to use online) which will introduce you to more concepts and techniques, rather than hoping for people here to help with every little issue you have.

Colin

I changed the gem file and succeeded with the db:create and created the three databases only for once after that I can't use any of my mysql database connections not only in ror applications the message is : Access denied for user 'root'@'localhost' (using password: YES) (Mysql::AccessDeniedError) I am using ruby on windows

this is an example of a database connection ActiveRecord::Base.establish_connection( :adapter => "mysql", :host => "127.0.0.1", :database => "database", :username => "root", :password => "*********" )

regards,

I download the lib libmysql.dll and I delete the line about password and It worked (i have a routing error but this is not serious)