Rails - Access denied for user 'root'@'localhost' ...

J

Jim Cochrane

I suppose I should post this in a Rails mailing list or wiki, but the
medium I'm used to is USENET, so I thought I'd try here first. (I don't
think there's a Rails newsgroup - please correct me if I'm wrong -
and I see some Rails postings here sometimes, so I'm assuming this
is appropriate.)

I'm using the book "Ajax on Rails" to learn about Rails development and
after following along for the first example, in chapter 2 (pg 20), I'm
encountering the error:

#28000Access denied for user 'root'@'localhost' (using password: NO)

This happens with the browser pointed to (as the book says to do):

http://localhost:3000/chapter2/myaction

This is after following the instructions to do:

script/generate controller chapter2 myaction

(which was after doing 'rails ajaxonrails; cd ajaxonrails' and starting
the server)

I suspect the problem is that the book forgot to tell me that I need to
create a database for the application and configure it. Is this the
case or should a database not be needed yet at this point - perhaps
something unforeseen is going wrong?

The complete error message I'm getting is:

Mysql::Error in Chapter2Controller#myaction

#28000Access denied for user 'root'@'localhost' (using password: NO)


Thanks!

--
 
J

James Britt

Jim said:
I suppose I should post this in a Rails mailing list or wiki, but the
medium I'm used to is USENET, so I thought I'd try here first. (I don't
think there's a Rails newsgroup - please correct me if I'm wrong -
and I see some Rails postings here sometimes, so I'm assuming this
is appropriate.)

I'm using the book "Ajax on Rails" to learn about Rails development and
after following along for the first example, in chapter 2 (pg 20), I'm
encountering the error:

#28000Access denied for user 'root'@'localhost' (using password: NO)

This looks like a MySQL user configuration issue.

Does user 'root' in MySQL have a password?

Have you created a better use account to use with the application DB?



--
James Britt

www.happycamperstudios.com - Wicked Cool Coding
www.jamesbritt.com - Playing with Better Toys
www.ruby-doc.org - Ruby Help & Documentation
www.rubystuff.com - The Ruby Store for Ruby Stuff
 
K

kranthi reddy

[Note: parts of this message were removed to make it a legal post.]

This happens generally when the mysql is not reached by the rails
applicaiton...
Probably there must be some super user/sudo user who need to grant the acces
permissions for mysql to get connected.
If you can conntect using ruby script/console you can be aware of much whats
is going on the command.
 
J

Jim Cochrane

I suppose I should post this in a Rails mailing list or wiki, but the
medium I'm used to is USENET, so I thought I'd try here first. (I don't
think there's a Rails newsgroup - please correct me if I'm wrong -
and I see some Rails postings here sometimes, so I'm assuming this
is appropriate.)

I'm using the book "Ajax on Rails" to learn about Rails development and
after following along for the first example, in chapter 2 (pg 20), I'm
encountering the error:

#28000Access denied for user 'root'@'localhost' (using password: NO)

This happens with the browser pointed to (as the book says to do):

http://localhost:3000/chapter2/myaction

This is after following the instructions to do:

script/generate controller chapter2 myaction

(which was after doing 'rails ajaxonrails; cd ajaxonrails' and starting
the server)

I suspect the problem is that the book forgot to tell me that I need to
create a database for the application and configure it. Is this the
case or should a database not be needed yet at this point - perhaps
something unforeseen is going wrong?

The complete error message I'm getting is:

Mysql::Error in Chapter2Controller#myaction

#28000Access denied for user 'root'@'localhost' (using password: NO)


Thanks!

I found a fix for the problem, so I'll answer my own question in case it
will help someone else with the same problem.

I did the following things to fix it:

- run mysql_setpermission and use its interactive interface to allow the
mysql root user to do everything (need to know the mysql root pw).

- use the mysql command to connect as root and create the needed database
(in this case, ajaxonrails_development).

- In database.yml, make sure username is root and fill in the password
field for the mysql root pw (or change the username to another mysql
user and the password to that user's password).

(Running mysql 14.12 on ubuntu 8.04 with rails 2.0.2-1; mysql, installed
via apt-get, was apparently initialized with only ordinary user
privileges for root.)

--
 
D

Dave Cheney

If I can suggest that using the root account on mysql is not
considered best practice. I would setup an account for your
application thusly

mysql> grant all on yourapp_production.* to 'yourapp'@'<your hostname
or %>' identified by 'decent_password';
mysql> flush privileges;

http://dev.mysql.com/doc/refman/5.0/en/grant.html

Cheers

Dave
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top