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 é:
Certifique-se de ter ativado mysql.server. Isso pode ser feito da seguinte maneira:
mysql.server start
Certifique-se de que está na pasta do projeto, para mim isso significa digitar:
cd simple_cms
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). Se 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 .
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
Mais uma vez, certifique-se de que está na pasta correta e digite:
empacotador de instalação de gem
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 instaladaInstale o bundler, agora digite:
pacote de instalação
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]
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 🙂