Я работаю над созданием тестовой системы, и мне нужно предоставить пользователю удаленный доступ к базе данных. Я делаю это следующим образом:
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. Конечно открыты для предложений!
Ошибка говорит сама за себя
ERROR 1141 (42000): There is no such grant defined for user 'codingo' on host '%'
Вы устанавливаете грант на localhost
но проверил грант на %
.
Пытаться
SHOW GRANTS for codingo@localhost;