Dan Nelson wrote:


In the last episode (Apr 29), Lou Olsten said:

I thought I had a handle on this, but now I'm all screwed up.

MySQL 4.1.1a-alpha-max-debug-log
Windows 2000 Server

I'm trying to create a user roby with a password of 'foo' with access
to  everything. Here's what happens:

- Sign in as root on the local host.
- GRANT ALL PRIVILEGES ON *.* TO roby@'%' IDENTIFIED BY 'foo' WITH GRANT OPTION;
- On same machine, try to login with: mysql -u roby -pfoo -h localhost
- Receive: ERROR 1045 (28000): Access denied for user: 'roby'@'localhost' (Using 
password: YES)


Remember that localhost is a special keyword that refers to the
unix-domain socket, and will not be matched with a wildcard '%' hostname. Use -h 127.0.0.1 or -h <publicip> if you are on the same machine as the
server and want to test remote privs.

This is incorrect. You are right that localhost is the unix socket, but % will match localhost if there is not a more specific alternative. The problem is that [EMAIL PROTECTED] matching is done host first, and the default mysql install creates an anonymous user ''@localhost. So, if you have entries for ''@localhost and [EMAIL PROTECTED], it's ''@localhost which matches when joe connects from localhost. If [EMAIL PROTECTED] is the only possible match, however (no entries for ''@localhost or [EMAIL PROTECTED]), then it will match.


Michael


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



Reply via email to