我正在创建一个测试系统,需要授予用户远程数据库访问权限。我使用以下方法执行此操作:
mysql> SHOW GRANTS for codingo;
ERROR 1141 (42000): There is no such grant defined for user 'codingo' on host '%'
mysql> GRANT ALL PRIVILEGES ON *.* to 'codingo'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)
然而,在我flush privileges
再次审查它们之后,它们似乎并不适用:
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW GRANTS for codingo;
ERROR 1141 (42000): There is no such grant defined for user 'codingo' on host '%'
我目前正在使用:
mysql Ver 14.14 Distrib 5.7.23,适用于 Linux (x86_64),使用 EditLine 包装器
但是,当我执行以下操作时,用户会显示权限:
mysql> select * from mysql.user where user='codingo' and host='localhost';
我还编辑了:
/etc/mysql/mysql.conf.d/mysqld.cnf
绑定地址0.0.0.0
(计划在调试后加强)仍然不允许远程连接。
但是我无法远程连接该设备,甚至无法与该用户进行本地连接。
这是在完全修补的 Ubuntu 服务器上。我还运行了 MySQL 强化脚本,所以我推测其中有一些东西阻止我创建额外的管理员,但我对此了解不够,无法通过 Google 解决问题。当然欢迎提出建议!
答案1
错误说明了一切
ERROR 1141 (42000): There is no such grant defined for user 'codingo' on host '%'
您设置了 的授权,localhost
但检查了 的授权%
。
尝试
SHOW GRANTS for codingo@localhost;