开发者

Problem when I run my server on localhost (ruby on rails)

开发者 https://www.devze.com 2023-01-28 09:38 出处:网络
When I type rails server in my CMD the server works and I can go to localhost:3000. But after i get this messege in the CMD and the same message in the browser onlocalhost:3000 in the errors section.

When I type rails server in my CMD the server works and I can go to localhost:3000. But after i get this messege in the CMD and the same message in the browser on localhost:3000 in the errors section.

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)

What is the issue?

here this is the database.yml file:

# MySQL. Versions 4.1 and 5.0 are recommended. # # Install the MySQL driver: # gem install mysql2 # # And be sure to use new-style password hashing: # http://dev.mysql.com/doc/refman/5.0/en/old-client.html development: adapter: mysql2 encoding: utf8 reconnect: false database: simple_cms_development pool: 5 username: root password: host: localhost

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run

"rake". # Do not set this db to the same as development or production. test: adapter: mysql2 encoding: utf8 reconnect: false database: simple_cms_test pool: 5 username: root password: host: localhost

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: simple_cms_production
  pool: 5
  username: root
  password:passwordex
  host: localhost


I know you already found the solution to your problem, but I'm going to post this as an answer anyways, for those who might stumble across this same issue.

Having the same exact Access denied for user 'user'@'localhost' (using password: NO) problem, it turns out my database.yml file was malformatted. The reason? YAML doesn't allow certain characters: I happened to be using a '!' in my password, and for whatever reason, the YAML parser reading this database.yml file ignored my password line like it wasn't there, hence the (using password: NO), even though I explicitly declared it.

Solution? Changed my password not to include any YAML special characters. I suppose there might be a way to escape it, though. Annoying nonetheless.


You're using root for your mysql user, but not supplying the root password in config/database.yml.

Incidentally, while its usually ok in development, using the root mysql user in production or for staging is a Very Bad Idea™.

here's a typical mysql config section:

production:
  adapter: mysql
  database: app_production
  username: root
  password: password
  pool: 5
  timeout: 5000
  encoding: utf8
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号