【问题标题】:Cannot grant privileges to a user on a database无法向数据库上的用户授予权限
【发布时间】:2021-01-01 07:21:51
【问题描述】:

我对自己遇到的问题感到困惑。我创建了一个数据库,创建了一个用户,并希望授予用户对数据库的所有权限。无论如何,我有语法错误,但我相当确定没有语法错误。

MariaDB [(none)]> SELECT User FROM mysql.user;
+------------+
| User       |
+------------+
| osticket   |
| phpmyadmin |
| root       |
+------------+
3 rows in set (0.00 sec)

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| osticket           |
| performance_schema |
| phpmyadmin         |
+--------------------+
5 rows in set (0.00 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON 'osticket'.* TO 'osticket'@localhost;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''osticket'.* TO 'osticket'@localhost' at line 1
MariaDB [(none)]>

当然,我还将 localhost 更改为“localhost”,但无济于事。这是怎么回事?

【问题讨论】:

  • @jarlh 我还在学习,为什么'SQL'标签不合适?
  • 它是非常特定于 MySQL 的,对其他 dbms 产品根本没有用。 "如果您的问题仅与特定 DBMS 相关(使用特定扩展/功能),请改用该 DBMS 的标签。用 SQL 标记的问题的答案应使用 ISO/IEC 标准 SQL。"

标签: mysql mariadb


【解决方案1】:
GRANT ALL PRIVILEGES ON `osticket`.* TO 'osticket'@localhost;

注意引文

`osticket`.*

【讨论】:

  • 我一定是瞎了眼,但是我的SQL里有引号?错误甚至显示它们:靠近 ''osticket'.* TO 'osticket'@localhost' 错误似乎在第一个 osticket 之前显示双引号,但这是一个额外的引号,在错误引号的末尾结束。
  • mysql 把那个双引号括起来。你需要的是`
  • 谢谢,这确实是解决方案,那个标记的字符是什么?我什至不知道如何在 AZERTY 布局上重现这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-05
  • 1970-01-01
  • 2018-03-21
  • 1970-01-01
  • 2014-01-13
  • 1970-01-01
  • 2020-12-07
相关资源
最近更新 更多