rake db:create之后的MySql错误1045

时间:2012-02-15 16:57:21

标签: mysql ruby-on-rails

我创建了一个新的Rails项目,我使用了scaffold,然后尝试 rake db:create 。 我没有更改config / database.yml 所以密码为空(我总是输入我用来登录localhost / phpmyadmin的密码,但这次我忘记了)

发展:   适配器:mysql2   编码:utf8   重新连接:false   数据库:test_associations_development   游泳池:5   用户名:root   密码:   socket:/tmp/mysql.sock

所以,回到终端我有以下消息:

$ rake db:create Access denied for user 'root'@'localhost' (using password: NO). Please provide the root password for your mysql installation >

>*******(I entered my password here)

$ rake db:createrake aborted! (<unknown>): couldn't parse YAML at line 31 column 2

Tasks: TOP => db:create => db:load_config (See full trace by running task with --trace)

在此之后,我无法登录phpmyadmin,当我在本地运行我的应用程序时,我收到此错误:

Mysql2 ::错误

拒绝访问用户'root'@'localhost'(使用密码:YES)

我正在使用OS X 10.7.2,Rails 3.2,Ruby 1.9.3

任何想法??

2 个答案:

答案 0 :(得分:10)

您可以尝试使用Terminal.app访问MySQL。在命令行运行:

mysql -u root

如果您希望root密码为空,但仍然可以看到:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

您知道密码已更改。

听起来根密码已被更改。如果您不知道它是什么,请按照以下说明重置密码:Resetting MySQL password

答案 1 :(得分:3)

这个答案与发生此行为的Ruby on Rails框架有关

  1. 拥有用户root和密码的mysql
  2. bootstrap new rails项目 使用mysql“rails new projectname
        -d mysql“
  3. 不要修改config / database.yml - 服务器的默认凭据是name:root,密码是空白
  4. rake db:创建提示显示 - 询问root密码,然后提供root密码
  5. 答案在here

    第68行的GRANT命令中

    基本上它执行GRANT命令,凭据与您当前的database.yml

    匹配

    我已经讨论过这个主题,行为会得到改善,并且会被视为一个错误。