Не могу установить разрешения для пользователя MySQL
Я пытаюсь установить разрешения для пользователя MySQL, используя следующую команду.
ДАЙТЕ ВСЕ НА joomla.* Пользователю @localhost;
Я перепробовал так много версий, но все они возвращают: ОШИБКА 1044 (42000): доступ пользователя ''@'localhost' к базе данных 'joomla2' запрещен
Который, кажется, указывает, что имя пользователя "пользователь" не передается? Я пробовал много версий команды выше, есть ли что-то еще, что мне нужно знать.
PS: моё имя на самом деле не "пользователь" на тот случай, если кто-то упоминает, что это зарезервированное слово или что-то подобное.
6 ответов
Попробуйте заглянуть в таблицы привилегий. Например:
> use mysql;
> select * from db;
Это может дать вам подсказку о том, что идет не так.
Вы также можете попробовать подключиться через tcp, а не через unix-сокет, указав user@'127.0.0.1'и подключившись с флагом -H 127.0.0.1 (если вы используете строковый клиент mysql cmd).
Вы пытались указать пароль, используя часть "IDENTIFIED BY "mypwd"" оператора GRANT?
Согласно справочному руководству MySQL, я бы сказал, что вы пропустили 'в приведенном выше утверждении.
Ты пробовал:
GRANT ALL ON joomla.* to 'user'@'localhost';
Вы вошли в MySQL как пользователь @localhost, когда пытаетесь выполнить эту команду?
Если это так, вы не сможете назначить себе привилегии, которые вам понадобятся, если вы вошли в систему как пользователь root или другой пользователь, который может назначить привилегии.
Это сработало для меня:
GRANT ALL PRIVILEGES ON joomla.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Я считаю, что проблема в том, что вы не даете пароль.
Кроме того, вы используете пользователя, который может предоставлять права другим пользователям? Вы подключаетесь как root или как обычный пользователь?
Вы перезапустили сервер после этого? Если нет, нужно оформить FLUSH PRIVILEGES
Спасибо всем. Это не отвечает на вопрос, но я собираюсь переустановить mysql и дать ему правильное имя пользователя и пароль root на этот раз. В прошлый раз я оставил их пустыми. Долгое решение, но оно решит проблему.