我使用 root 帐户创建的帐户'a'@'%'。但是我在指定host参数时无法使用该帐户连接到MySQL服务器。我可以不带-h参数成功连接。请看下面的文字记录。我希望有人能帮我解释一下。谢谢。
mysql> grant all on *.* to 'a'@'%' identified by a;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'a' at line 1
mysql> grant all on *.* to 'a'@'%' identified by 'a';
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for 'a'@'%';
+-----------------------------------------------------------------------------------------------------------+
| Grants for a@% |
+-----------------------------------------------------------------------------------------------------------+
| GRANT …Run Code Online (Sandbox Code Playgroud) 我在具有静态 IP 的远程服务器上运行的 64 位 Ubuntu 上全新安装了 mysql 服务器 5.2.6。无论如何,是否允许仅通过预先批准的 IP 建立 Mysql 远程连接?我正在寻找简单而优雅的方法来做到这一点,而无需做太多与操作系统相关的管理工作,只需使用 mysql 即可处理。
我正在尝试删除 mysql 用户的权限,以便无法删除特定的数据库。但是如果我运行这个命令:
revoke all privileges on test.* from 'demo'@'localhost';
Run Code Online (Sandbox Code Playgroud)
或这个
revoke drop on test.* from 'demo'@'localhost';
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
错误 1141 (42000):没有为主机“localhost”上的用户“demo”定义此类授权
test是数据库的名称。
演示用户的权限是这样的:
mysql> show grants for demo@'localhost';
+----------------------------------------------------------------------------------------------------------------------+
| Grants for demo@localhost |
+----------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'demo'@'localhost' IDENTIFIED BY PASSWORD '*C142FB215B6E05B7C134B1A653AD4B455157FD79' |
Run Code Online (Sandbox Code Playgroud)
此外,当我以用户 demo 登录时,我可以删除数据库测试。
当我尝试从用户演示中删除权限时,为什么会出现此错误?