无法与拥有该权限的用户连接到MySQL数据库

时间:2017-10-10 23:46:53

标签: mysql

让我来描述我的问题: 我有一个只能由一个用户操作的数据库(管理员除外)。我已经通过(CREATE USER 'dbms'@'localhost' IDENTIFIED BY 'password';)创建了这个用户。然后我创建了数据库本身(CREATE DATABASE dbms_db;)并授予用户所有权限(GRANT ALL PRIVILEGES ON dbms_db.* to 'dbms'@'localhost';)。最后,我刷新了权限(FLUSH PRIVILEGES;)。即使我运行SHOW GRANTS FOR 'dbms'@'localhost';,结果也是:

+------------------------------------------------------------+
| Grants for dbms@localhost                                  |
+------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'dbms'@'localhost'                   |
| GRANT ALL PRIVILEGES ON `dbms_db`.* TO 'dbms'@'localhost' |
+------------------------------------------------------------+

但是当我尝试使用此用户连接到数据库时,访问被拒绝。

$ mysql -h localhost -u dbms -D dbms_db -p 
> ERROR 1044 (42000): Access denied for user 'dbms'@'localhost' to database 'dbms_db'

只是为了澄清,如果我使用root用户,我可以访问数据库。此外,如果我没有使用dbms标志指定数据库,我可以使用-D用户连接到MySQL客户端。

1 个答案:

答案 0 :(得分:0)

1.检查数据库mysql中的表用户并确保acount具有登录权限@ localhost。以下是我数据库中的图像; enter image description here 2.如果你在一台计算机上使用虚拟机,那么你必须使用@ip而不是@localhost。