Hi,

Miguel Cardenas wrote:
Remember to quote the user and host carefully.  So,

The quoting is okay, I tested again

If you have doubts about what you actually granted, do this:
SHOW GRANTS FOR 'user'

I've sent this command:
grant all on mydatabase.* to 'myuser'@'%' identified by 'mypass';

Then tested the show grants:
show grants for 'myuser';
-------
Grants for [EMAIL PROTECTED] :
GRANT USAGE ON *.* TO 'myuser'@'%' IDENTIFIED BY PASSWORD '...'
GRANT ALL PRIVILEGES ON `mydatabase`.* TO 'myuser'@'%'

so it appears that user is added correctly, but when I try to connect get this error again:

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

Oh, one more place to look is at the server configuration in /etc/my.cnf or
equivalent, to be sure networking is configured right.  You want to check
the bind-address and skip-networking settings.  You don't want
skip-networking, and you want bind-address set to the machine's IP address.
 Now that I think of it, this is more likely to be the problem for you.

- skip-networking is disabled
- bind-address option is not present in /etc/my.cnf

should I try to add a:

bind-address = x.y.z.a

to the configuration file :-?


Thanks for any comment

******************
P.S.
I've added the same user but using 'myuser'@'localhost' whithout deleting the first one created, and the new show grants outputs the *same* two lines of information

Grants for [EMAIL PROTECTED] :
GRANT USAGE ON *.* TO 'myuser'@'%' IDENTIFIED BY PASSWORD '...'
GRANT ALL PRIVILEGES ON `mydatabase`.* TO 'myuser'@'%'

but this time am able to connect. What can be wrong? or do I need to add both '%' and 'localhost' hosts?
******************


I think you now have two users, which you will only be able to see with these:

        SHOW GRANTS FOR 'myuser'@'%'
        SHOW GRANTS FOR 'myuser'@'localhost'

If you don't specify a hostname in SHOW GRANTS, '%' is assumed. My mistake for not telling you this before. If you enable networking, and connect with

        mysql -h 127.0.0.1

instead of

        mysql -h localhost

You will connect via TCP/IP, and you will be connecting as 'myuser'@'%' user. (As someone else said, localhost is a magical value with special behavior; it defaults to connecting via a socket on UNIX-ish systems, instead of TCP/IP). The simplest way to set this server configuration, if you haven't already, is probably to set bind-address to 127.0.0.1, which allows TCP/IP connections from the same machine. If you want to be able to connect from elsewhere, set it to the server's IP address.

Cheers
Baron

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to