执行以下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'
答案 0 :(得分: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';`
答案 1 :(得分:0)
-p
和您的密码之间没有空格。
由于您只为数据库my_db
授予了权限,因此还要添加数据库以直接连接到它。
mysql -u user -pmypasswd my_db
答案 2 :(得分: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;