Cannot log in with created user in mysql

2019-01-16 10:02发布

Using this command

GRANT ALL PRIVILEGES ON *.* to 'brian'@'%' identified by 'password';

I try to login with:

 mysql -u brian -ppassword

The error is:

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

I am doing this as root and I did try to flush privileges.

I tried this with countless users but it does not seem to work. I can create a user with no password and login works. Command line and from phpmyadmin

Also check to see if the user was in mysql.user which it is.

Show grants for brian shows:

| GRANT ALL PRIVILEGES ON *.* TO 'brian'@'%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' |

12条回答
冷血范
2楼-- · 2019-01-16 10:08

I just created an account to provide one other possibility for future searchers:

It might be kind of obvious to experienced users, but my password was randomly generated and contained a "\". Took me a while until I found out that that character seems to cause problems, resulting in me not being able to log in.

查看更多
贼婆χ
3楼-- · 2019-01-16 10:11

You probably have this perpetual MySQL problem where one of the default users in the user table is '' @ localhost, which winds up denying all localhost users later in the table. What I would do is mysqldump the mysql database and look for this entry in the User table; if found, delete it and flush privileges.

For more details see https://dev.mysql.com/doc/refman/5.5/en/connection-access.html.

It is a common misconception to think that, for a given user name, all rows that explicitly name that user are used first when the server attempts to find a match for the connection. This is not true. The preceding example illustrates this, where a connection from h1.example.net by jeffrey is first matched not by the row containing 'jeffrey' as the User column value, but by the row with no user name. As a result, jeffrey is authenticated as an anonymous user, even though he specified a user name when connecting.

查看更多
我只想做你的唯一
4楼-- · 2019-01-16 10:11

You forgot the quotes around brian in your grant statement. Try it like this:

GRANT ALL PRIVILEGES ON *.* to 'brian'@'%' identified by 'password';

查看更多
男人必须洒脱
5楼-- · 2019-01-16 10:11

I think 'Russell Silva' is right...

I created an user by

CREATE USER 'username'@'%' PASSWORD='userpassword';

But I cannot login in this account.The console told me that

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

So I created an user with the same username except that changing '%' to 'localhost',and I could finally login in as 'username'. It's quite weird for me though.

查看更多
我命由我不由天
6楼-- · 2019-01-16 10:12

In my case it was due to me clicking "SSL: REQUIRE SSL" (in phpmyadmin). When I changed it to "REQUIRE NONE" I could log in.

查看更多
乱世女痞
7楼-- · 2019-01-16 10:15

This is a problem caused by the anonymous users. Once I install MySQL I always run

shell> mysql_secure_installation 

and select to set/change the root password, remove anonymous users, disallow remote root login, remove the test database. This will remove the anonymous user and secure your installation. It should also solve the problem you have.

查看更多
登录 后发表回答