Исправьте имя пользователя и пароль в database.yml, но пароль не принят - PullRequest
0 голосов
/ 05 декабря 2011

На OS X lion я не могу найти, почему он не принимает мой пароль.Я могу подключиться к базе данных и администрировать ее из mysql workbench, но rails, похоже, не может подключиться.

Mysql был установлен из dmg, скачанного с сайта mysql.

Я пытался предоставить привилегии из командной строки mysql:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'

Это трассировка от: rake db:create Я также пытался bundle exec rake db:create

Access denied for user 'root'@'localhost' (using password: YES)
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/mysql2-0.3.10/lib/mysql2/client.rb:44:in `connect'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/mysql2-0.3.10/lib/mysql2/client.rb:44:in `initialize'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.0/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in `n
ew'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.0/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in `m
ysql2_connection'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_pool.r
b:304:in `new_connection'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_pool.r
b:323:in `checkout_new_connection'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_pool.r
b:265:in `block (2 levels) in checkout'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_pool.r
b:261:in `loop'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_pool.r
b:261:in `block in checkout'
/Users/adamar/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_pool.r
b:260:in `checkout'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_pool.r
b:162:in `connection'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_pool.r
b:409:in `retrieve_connection'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_specif
ication.rb:107:in `retrieve_connection'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_specif
ication.rb:89:in `connection'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.0/lib/active_record/railties/databases.rake:97:in `rescue in rescu
e in create_database'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.0/lib/active_record/railties/databases.rake:84:in `rescue in creat
e_database'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.0/lib/active_record/railties/databases.rake:54:in `create_database
'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.0/lib/active_record/railties/databases.rake:42:in `block (2 levels
) in <top (required)>'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `block in execute'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib
/Users/adamar/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block (2 levels) in top_level'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block in top_level'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `block in run'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/bin/rake:19:in `load'
/Users/adamar/.rvm/gems/ruby-1.9.3-p0/bin/rake:19:in `<main>'
Tasks: TOP => db:create

РЕДАКТИРОВАТЬ: Когда я запускаю: mysql -u root -p Я получаю это:

Adamars-MacBook-Pro:~ adamar$ mysql -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Это то, что мой database.yml

test:
  adapter: mysql2
  encoding: utf8
  database: linkdeck_test
  username: root
  password: 
  pool: 5
  host: 127.0.0.1
  port: 3306

development:
  adapter: mysql2
  encoding: utf8
  database: linkdeck_development
  username: root
  password: 
  pool: 5
  host: 127.0.0.1
  port: 3306

production:
  adapter: mysql
  encoding: utf8
  database: linkdeck_production
  username: root
  password: 
  host: 127.0.0.1
  port: 3306

1 Ответ

2 голосов
/ 05 декабря 2011

Это может показаться до боли очевидным, но вы уверены, что это правильно?Вы говорите, что используете графический интерфейс рабочей среды, который отличается от подключения к нему из Rails и, следовательно, не доказывает, что ваша конфигурация верна.

Дважды проверьте следующее.Во-первых, убедитесь, что ваш config/database.yml включает в себя что-то вроде этого:

development:
  adapter: mysql2
  database: example_development
  username: root
  password: admin12345

Если это так, вы можете запустить mysql -u root -p и предоставить тот же пароль, что и в config/database.yml?Если нет, значит что-то не так с вашими разрешениями.

Также убедитесь, что при установке mysql выполните это с помощью обычного brew install mysql или другого аналогичного подхода к управлению пакетами.

Обновление: Тот факт, что вы не видите базу данных, очень наводит на мысль о наличии у вас проблемы с разрешениями.Убедитесь, что вы создали пользователя и разрешили ему доступ ко всем базам данных.

...