在 OS X lion 上,我不知道为什么它不接受我的密码。我可以连接到数据库并从 mysql 工作台对其进行管理,但 Rails 似乎无法连接。
Mysql 是通过从 mysql 站点下载的 dmg 安装的。
我尝试从 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
最佳答案
这可能看起来非常明显,但你确定这是正确的吗?您说您正在使用工作台 GUI,这与从 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
或其他类似的包管理方法进行安装。
更新:您看不到数据库这一事实非常表明您存在权限问题。确保您已创建用户并允许其访问所有数据库。
关于mysql - database.yml 中的用户名和密码正确,但密码不被接受,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8379438/