当我在CMD中输入rails服务器时,服务器可以工作,我可以转到localhost:3000。但是,当我在CMD中得到这个messege之后,在localhost上获得相同的消息:3000在错误部分。
Started GET "/rails/info/properties" for 127.0.0.1 at 2010-12-02 21:14:55 +0200
Mysql2::Error (Access denied for user 'root'@'localhost' (using password: NO)):
Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatc
h/middleware/templates/rescues/_trace.erb (1.0ms)
Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatc
h/middleware/templates/rescues/_request_and_response.erb (30.0ms)
Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.3/lib/action_dispatc
h/middleware/templates/rescues/diagnostics.erb within rescues/layout (97.0ms)有什么问题吗?
这里是database.yml文件:
MySQL.建议版本4.1和5.0。#安装MySQL驱动程序:# gem安装mysql2 ##,并确保使用新样式的密码散列:# http://dev.mysql.com/doc/refman/5.0/en/old-client.html开发:适配器: mysql2编码: utf8重新连接: simple_cms_development池:5用户名: root密码:utf8: localhostWarning:定义为“测试”的数据库当您运行"rake“时,将从您的开发数据库中删除并重新生成#。#不要将此数据库设置为与开发或生产相同的数据库。测试:适配器: mysql2编码: utf8重新连接:假数据库: simple_cms_test池:5用户名: root密码: host: localhost
生产:适配器: mysql2编码: utf8重新连接:假数据库: simple_cms_production池:5用户名: root密码:passwordex主机: localhost
发布于 2010-12-02 19:42:05
您正在为mysql用户使用root,但没有在config/database.yml中提供根密码。
顺便说一句,虽然它在开发中通常是可以的,但是在生产中使用根mysql用户或用于暂存是一个非常糟糕的想法,™。
下面是一个典型的mysql配置部分:
production:
adapter: mysql
database: app_production
username: root
password: password
pool: 5
timeout: 5000
encoding: utf8发布于 2012-01-20 02:13:26
我知道你已经找到了解决你的问题的方法,但无论如何,我会把这作为一个答案,给那些可能会遇到同样问题的人。
由于同样的Access denied for user 'user'@'localhost' (using password: NO)问题,原来我的database.yml文件格式不正确。原因是什么?YAML不允许某些字符:我碰巧使用的是'!‘在我的密码中,不管出于什么原因,读取这个database.yml文件的YAML解析器忽略了我的密码行,就好像它不在那里一样,因此出现了(using password: NO),尽管我显式地声明了它。
解决办法?更改密码不包括任何YAML特殊字符。不过,我想也许有办法能逃过它。不过还是很烦人。
https://stackoverflow.com/questions/4338917
复制相似问题