Acesso negado para o usuário ‘root’ @ ‘localhost’ (usando a senha: NÃO) (Mysql2 :: Error)

Como alguém realmente (como ontem) novo em programação, tenho usado o tutorial do Lynda.com para começar a trabalhar com Ruby on Rails e me deparei com quase inúmeros problemas.

Mais recentemente foi o erro

Access denied for user 'root'@'localhost' (using password: NO) (Mysql2::Error)

Isso foi realmente frustrante, pois eu tinha acabado de resolver uma série de outras questões incontáveis.

Este problema surgiu quando eu estava fazendo:

rails generate controller demo index

Então eu obteria os seguintes resultados …

/Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `connect': Access denied for user 'root'@'localhost' (using password: NO) (Mysql2::Error)
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `
initialize'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in `new'

from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in `mysql2_connection'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/connection_pool.rb:315:in `
new_connection'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/connection_pool.rb:325:in `checkout_new_connection'

from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/connection_pool.rb:247:in `block (2 levels) in checkout'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/connection_pool.rb:242:in `
loop'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/connection_pool.rb:242:in `block in checkout'

from /Users/<username>/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/connection_pool.rb:239:in `
checkout'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/connection_pool.rb:102:in `block in connection'

from /Users/<username>/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/connection_pool.rb:101:in `
connection'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/connection_pool.rb:410:in `retrieve_connection'

from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/connection_specification.rb:171:in `retrieve_connection'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/connection_specification.rb:145:in `
connection'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/railtie.rb:88:in `block in <class:Railtie>'

from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/railties-3.2.13/lib/rails/initializable.rb:30:in `instance_exec'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/railties-3.2.13/lib/rails/initializable.rb:30:in `
run'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/railties-3.2.13/lib/rails/initializable.rb:55:in `block in run_initializers'

from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/railties-3.2.13/lib/rails/initializable.rb:54:in `each'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/railties-3.2.13/lib/rails/initializable.rb:54:in `
run_initializers'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/railties-3.2.13/lib/rails/application.rb:136:in `initialize!'

from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/railties-3.2.13/lib/rails/railtie/configurable.rb:30:in `method_missing'
from /Users/<username>/simple_cms/config/environment.rb:5:in `
<top (required)>'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/railties-3.2.13/lib/rails/application.rb:103:in `require'

from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/railties-3.2.13/lib/rails/application.rb:103:in `require_environment!'
from /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/railties-3.2.13/lib/rails/commands.rb:25:in `
<top (required)>'
from script/rails:6:in `require'

from script/rails:6:in `<main>'

O que você precisa fazer para corrigir a maior parte desse erro é:

  1. Certifique-se de ter ativado mysql.server. Isso pode ser feito da seguinte maneira:

    mysql.server start

  2. Certifique-se de que está na pasta do projeto, para mim isso significa digitar:

    cd simple_cms

  3. Vá para a pasta inicial do projeto e localize este arquivo /Users/matthewbarram/simple_cms/config/database.yml. Abra-o e role para baixo até a linha 16-18 e certifique-se de que as informações do banco de dados foram inseridas corretamente (veja a imagem). CenárioSe você não criou seu banco de dados, você pode usar:

    rake db: criar

Ou você pode fazer isso manualmente seguindo as instruções do vídeo aqui – http://www.lynda.com/home/Player.aspx?lpk4=75189&playChapter=False .

  1. Depois de executar o comando novamente após corrigir o arquivo de banco de dados, recebi este erro:

    Matthews-MacBook-Pro-2: cms
    simples <nome de usuário> $ rails geram índice de demonstração do controlador / Users / < nome de usuário > /. rvm / rubies /ruby-2.0.0- p195 / lib /ruby/ site ruby / 2.0.0 / rubygems / core ext / kernel require.rb: 45: in require ‘ from / Users / <username> / simple cms / config / boot.rb: 6: in `<top (required)>’ from / Users / <username> /.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site ruby / 2.0.0 / rubygems / core ext / kernel require.rb: 45: in require ‘ from script / rails: 5: in `< principal> ‘require': cannot load such file -- bundler/setup (LoadError) from /Users/<username>/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in

    require' from /Users/<username>/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in

  2. Mais uma vez, certifique-se de que está na pasta correta e digite:

    empacotador de instalação de gem

  3. A gem será instalada (obtenha confirmação):

    Fetching: bundler-1.3.5.gem (100%)

    Bundler-1.3.5 Instalou com sucesso a
    documentação de análise para bundler-1.3.5
    Instalando a documentação ri para bundler-1.3.5
    1 gem instalada

  4. Instale o bundler, agora digite:

    pacote de instalação

  5. Isso vai rodar e dizer algo como …

    Buscando metadados de gem em https://rubygems.org/ ……….
    Buscando metadados de gem em https://rubygems.org/ ..
    Instalando rake (10.1.0)
    Usando i18n (0.6.1)
    Usando multi_json (1.7.7)
    Usando o suporte ativo (3.2.13)
    Usando o builder (3.0.4)
    Usando o modelo ativo (3.2.13)
    Usando o erubis (2.7.0)
    Usando a viagem (1.0.4)
    Usando o rack (1.4.5)
    Usando rack-cache (1.2)
    Usando rack-test (0.6.2)
    Usando hike (1.2.3)
    Usando tilt (1.4.1)
    Usando sprockets (2.2.2)
    Usando actionpack (3.2.13)
    Usando mime-types (1.23)
    Usando poliglota (0.3.3)
    Usando copa de árvore (1.4.14)
    Usando mail (2.5.4)
    Usando actionmailer (3.2.13)
    Usando arel (3.0.2)
    Usando tzinfo (0.3.37)
    Usando activerecord (3.2.13)
    Usando activeresource (3.2.13)
    Usando coffee-script-source (1.6 .2)
    Usando execjs (1.4.0)
    Usando coffee-script (2.2.0)
    Usando rack-ssl (1.3.3)
    Usando json (1.8.0)
    Usando rdoc (3.12.2)
    Usando thor (0.18.1)
    Usando railties (3.2.13)
    Usando coffee-rails (3.2.2)
    Usando jquery-rails (3.0.1)
    Usando mysql2 (0.3.11)
    Usando bundler (1.3.5)
    Usando rails (3.2.13)
    Usando sass (3.2. 9)
    Usando sass-rails (3.2.6)
    Usando uglifier (2.1.1)
    Seu pacote está completo!
    Use para ver onde uma gema agrupada está instalada.bundle show [gemname]

  6. Agora, finalmente, se você executar o comando, ele funcionará corretamente!

Se você tiver qualquer problema, entre em contato conosco – será um prazer ajudar, se possível.

Mateus 🙂