1

执行以下mysql语句创建数据库并赋予用户权限后无法访问mysql

create database my_db;
GRANT ALL PRIVILEGES ON my_db.* TO 'user'@'%' IDENTIFIED BY 'mypasswd';
GRANT SELECT ON my_db.* TO 'user'@'%' IDENTIFIED BY 'mypasswd';
FLUSH PRIVILEGES;


mysql -u user -p mypasswd drops me 
Access denied for user 'user'@'localhost'
4

3 回答 3

1

您需要分别授予用户从 localhost 连接的权限。% 不管用。

`GRANT ALL PRIVILEGES ON my_db.* TO 'user'@'localhost' IDENTIFIED BY 'mypasswd';
 GRANT SELECT ON my_db.* TO 'user'@'localhost' IDENTIFIED BY 'mypasswd';`
于 2012-12-24T09:29:50.553 回答
0

-p和您的密码之间没有空格。

由于您仅授予数据库权限my_db,因此也添加数据库以直接连接到它。

mysql -u user -pmypasswd my_db
于 2012-12-24T09:25:28.213 回答
0

我试过这个:

GRANT ALL ON my_db.* TO 'user'@'%' IDENTIFIED BY 'mypasswd';
FLUSH PRIVILEGES;

之后

./mysql -uuser -pmypasswd

对我来说没问题。

如果没有,请尝试使用 localhost:

GRANT ALL ON my_db.* TO 'user'@'localhost' IDENTIFIED BY 'mypasswd';
FLUSH PRIVILEGES;
于 2012-12-24T09:37:22.537 回答