2011-07-30 7 views
13

pojawia się następujący komunikat o błędzie podczas uruchamiania serwera szyn z nowej aplikacji:Ruby on Rails MySQL błąd Access denied for user 'root @ localhost'

/Users/fred/.rvm/gems/ruby-1.9. 2-p180/gems/mysql2-0.2.6/lib/mysql2/client.rb: 37: w `connect ': Odmowa dostępu dla użytkownika' root '@' localhost '(przy użyciu hasła: YES) (Mysql2 :: Error)

Oto moja database.yml

# MySQL. Versions 4.1 and 5.0 are recommended. 
# 
# Install the MySQL driver: 
# gem install mysql2 
# 
# And be sure to use new-style password hashing: 
# http://dev.mysql.com/doc/refman/5.0/en/old-client.html 
development: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: group_chat_development 
    pool: 5 
    username: root 
    password: admin 
    socket: /tmp/mysql.sock 

# 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: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: group_chat_test 
    pool: 5 
    username: root 
    password: admin 
    socket: /tmp/mysql.sock 

production: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: group_chat_production 
    pool: 5 
    username: root 
    password: admin 
    socket: /tmp/mysql.sock 

Poniżej znajduje się pełny komunikat o błędzie

MacPro:FireDemon fred$ rails s 
=> Booting Mongrel 
=> Rails 3.0.3 application starting in development on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
Exiting 
/Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/mysql2/client.rb:37:in `connect': Access denied for user 'root'@'localhost' (using password: YES) (Mysql2::Error) 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/mysql2/client.rb:37:in `initialize' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/active_record/connection_adapters/mysql2_adapter.rb:14:in `new' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/active_record/connection_adapters/mysql2_adapter.rb:14:in `mysql2_connection' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:228:in `new_connection' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `checkout_new_connection' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:190:in `block (2 levels) in checkout' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:186:in `loop' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:186:in `block in checkout' 
    from /Users/fred/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:185:in `checkout' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:93:in `connection' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:316:in `retrieve_connection' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:97:in `retrieve_connection' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:89:in `connection' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/base.rb:1330:in `replace_bind_variables' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/base.rb:1317:in `sanitize_sql_array' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/base.rb:1224:in `sanitize_sql_for_conditions' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/relation/query_methods.rb:206:in `build_where' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/relation/query_methods.rb:77:in `where' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/base.rb:441:in `where' 
    from /Users/fred/Desktop/FireDemon/app/models/user.rb:14:in `<class:User>' 
    from /Users/fred/Desktop/FireDemon/app/models/user.rb:1:in `<top (required)>' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:454:in `load' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:454:in `block in load_file' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:596:in `new_constants_in' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:453:in `load_file' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:340:in `require_or_load' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:491:in `load_missing_constant' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:183:in `block in const_missing' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:181:in `each' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:181:in `const_missing' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/inflector/methods.rb:124:in `block in constantize' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/inflector/methods.rb:123:in `each' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/inflector/methods.rb:123:in `constantize' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/core_ext/string/inflections.rb:43:in `constantize' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.3/lib/active_model/observing.rb:182:in `observed_class' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.3/lib/active_model/observing.rb:175:in `observed_classes' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.3/lib/active_model/observing.rb:195:in `observed_classes' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.3/lib/active_model/observing.rb:191:in `initialize' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/observer.rb:96:in `initialize' 
    from /Users/fred/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/singleton.rb:109:in `new' 
    from /Users/fred/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/singleton.rb:109:in `block in instance' 
    from <internal:prelude>:10:in `synchronize' 
    from /Users/fred/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/singleton.rb:107:in `instance' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.3/lib/active_model/observing.rb:66:in `instantiate_observer' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.3/lib/active_model/observing.rb:39:in `block in instantiate_observers' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.3/lib/active_model/observing.rb:39:in `each' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.3/lib/active_model/observing.rb:39:in `instantiate_observers' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/railtie.rb:83:in `block (2 levels) in <class:Railtie>' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/lazy_load_hooks.rb:26:in `on_load' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.3/lib/active_record/railtie.rb:82:in `block in <class:Railtie>' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/lazy_load_hooks.rb:34:in `call' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/lazy_load_hooks.rb:34:in `execute_hook' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/lazy_load_hooks.rb:43:in `block in run_load_hooks' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/lazy_load_hooks.rb:42:in `each' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/lazy_load_hooks.rb:42:in `run_load_hooks' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/application/finisher.rb:46:in `block in <module:Finisher>' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/initializable.rb:25:in `instance_exec' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/initializable.rb:25:in `run' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/initializable.rb:50:in `block in run_initializers' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/initializable.rb:49:in `each' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/initializable.rb:49:in `run_initializers' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/application.rb:134:in `initialize!' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/application.rb:77:in `method_missing' 
    from /Users/fred/Desktop/FireDemon/config/environment.rb:5:in `<top (required)>' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `require' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `block in require' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `block in load_dependency' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:596:in `new_constants_in' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `load_dependency' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `require' 
    from /Users/fred/Desktop/FireDemon/config.ru:3:in `block in <main>' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/builder.rb:46:in `instance_eval' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/builder.rb:46:in `initialize' 
    from /Users/fred/Desktop/FireDemon/config.ru:1:in `new' 
    from /Users/fred/Desktop/FireDemon/config.ru:1:in `<main>' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/builder.rb:35:in `eval' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/builder.rb:35:in `parse_file' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/server.rb:162:in `app' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/server.rb:248:in `wrapped_app' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.2.1/lib/rack/server.rb:213:in `start' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/commands/server.rb:65:in `start' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/commands.rb:30:in `block in <top (required)>' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/commands.rb:27:in `tap' 
    from /Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.3/lib/rails/commands.rb:27:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 
MacPro:FireDemon fred$ 

Odpowiedz

13

Wygląda na to, że użytkownik nie może połączyć się z bazą danych MySQL DB. Wypróbuj te polecenia w konsoli:

mysql -u root -p 

A kiedy poproszony, podaj hasło jako „admin”

Jeśli jest to możliwe, to powinno być dobrze iść.

11

Hasło jest nieprawidłowe dla użytkownika root w pliku config/database.yml. Zawsze możesz użyć polecenia mysqladmin, aby zmienić hasło użytkownika root, jeśli go nie pamiętasz.

+0

masz na myśli run „mysqladmin - u administratora hasła root "? Ponieważ jeśli próbuję uruchomić, otrzymuję polecenie '-bash: mysqladmin: command not found' – user852974

+0

Gdzie znajduje się twój mysql? Jak to zainstalowałeś? –

+0

@ChrisLedet Mam również ten problem (OSX) i zainstalowałem mysql z homebrew. Co mogę zrobić?? Nigdy nie utworzyłem hasła po zainstalowaniu mysql. – sixty4bit

1

Odpowiedź jest w pytaniu> MySQL błąd Access denied for user 'root @ localhost'

Zastosuj użytkownika root z hasłem administratora do group_chat_development bazy MySQL

aktualizacja Wydaje mi się, że możesz nie chcieć używać msQL w ogóle dla twojego dev i przetestować bazy danych, w takim przypadku zmień ustawienia testowania i programowania bazy danych.yml na

# SQLite version 3.x 
# gem install sqlite3-ruby (not necessary on OS X Leopard) 
development: 
    adapter: sqlite3 
    database: db/development.sqlite3 
    pool: 5 
    timeout: 5000 

# 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: 
    adapter: sqlite3 
    database: db/test.sqlite3 
    pool: 5 
    timeout: 5000 

Jeśli nie wiesz, jak używać narzędzi MySQL, powinieneś przyzwyczaić się do ich używania już wkrótce, ponieważ najprawdopodobniej będziesz ich potrzebował w środowisku twojego serwera produkcyjnego. Znajdziesz tam odnośniki do odpowiedniej wersji MySQL, której używasz tutaj http://dev.mysql.com/doc/ Użyj administratora MySQL, aby ustawić uprawnienia użytkownika.

-1

powinieneś podać pole "host:" w devlepment w pliku database.yml. nazwa hosta musi być adresem "IP", np. "127.0.0.1" lub czymś .. tj. "Host: 127.0.0.1" i ponownie uruchomić serwer i wpisać na adres taki jak "127.0.0.1:3000" tutaj 3000 to port nomber ...

+0

Po co to wszystko majstrować przy pomocy ip/port? Przyjęta odpowiedź wskazuje już na nieważne dane uwierzytelniające – RichardTheKiwi

2

Poręczna podpowiedź domowa - utknąłem na tym też, ale znalazłem tamtą pętlę (127.0.0.1)! = 'Localhost' ... Miałem hosta: 127.0.0.1 i byłem widząc ten dokładny problem. Szybka zmiana na "localhost" naprawiła to dla mnie ... mam nadzieję, że pomoże komuś.

development: 
adapter: mysql2 
database: mydb 
host: localhost 
username: root 
password: mypass 
0

Jeśli ustawienie mysql hasło roota po raz pierwszy, a następnie wpisz następujące polecenia następujące:

hasło mysqladmin

Zostaniesz poproszony o nowe hasło i potwierdź hasło.

Po potwierdzeniu spróbuj zalogować się przy użyciu rootu użytkownika i hasła, które właśnie ustawiłeś.

mysql 'root @ your-new-password'

Uwaga: Musisz się zalogować jako root tylko wtedy będzie można ustawić mysql hasło.

Dzięki.

1

Więc utknąłem z tym przez chwilę.

SPRAWDŹ plik config/database.yml i sprawdź ustawienia.

default: &default 
    adapter: mysql2 
    encoding: utf8 
    pool: 5 
    username: root 
    password: root 
    socket: (check what your socket location is by typing mysqladmin version into termnal) 

następnie przejść do terminala i wpisz

mysql -u root -p 

a na końcu zamknąć terminal i ponownie otwarty, a potem

bundle instal 

następnie

rails s 

szwy jak masz ponownie zainstalować pakiet dla zmiany mają miejsce.

Nadzieję, że pomaga!

1

Jeśli zainstalowany przy użyciu pakietu Oracle, spróbuj zalogować się swoją mysql przez

mysql -u username 

Następnie uruchom

FLUSH PRIVILEGES; 

Następnie ustawić hasło

SET PASSWORD FOR 'username'@'localhost' = PASSWORD('[password]'); 
Powiązane problemy