Jim Cochrane
6/23/2008 7:49:00 AM
On 2008-06-23, Jim Cochrane <allergic-to-spam@no-spam-allowed.org> wrote:
> 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.)
--