mysql - database.yml 中的用户名和密码正确,但密码不被接受

标签 mysql ruby ruby-on-rails-3 osx-lion

在 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/

相关文章:

javascript - 防止缩放时输入边距增大

ruby-on-rails - Ruby On Rails 迁移

ruby-on-rails - 如何将 gem 的插件 "convert"使其变为 "private"?

php - 在哪里放置 WHERE 子句来限制搜索引擎

arrays - 从数组中添加哈希

ruby - Selenium WebDriver 将 Firefox 路径更改为 Tor

ruby-on-rails-3 - Rails : redirect_to with :error, 但 flash[:error] 为空

c# - 如何在 asp.net mvc 中修复 404 'Resource cannot be found'

PHP - mySQL 数据库一直忽略我查询的第一部分

php - PDOException : Packets out of order.预期收到0。1.数据包大小= 23