Не удается установить разрешения для пользователя MySQL

Я пытаюсь установить разрешения для пользователя MySQL, используя следующую команду.

ПРЕДОСТАВИТЬ ВСЕ НА joomla. * Пользователю @ localhost;

Я пробовал так много версий, но все они возвращаются: ОШИБКА 1044 (42000): пользователю '' @ 'localhost' запрещен доступ к базе данных 'joomla2'

Что, кажется, указывает на то, что имя пользователя "пользователь" не передается? Я пробовал много версий приведенной выше команды, есть ли еще что-то, о чем мне нужно знать.

PS: мое имя на самом деле не "пользователь" на тот случай, если кто-то скажет, что это зарезервированное слово или что-то подобное.


person Ankur    schedule 28.04.2009    source источник
comment
Похоже, вы предоставляете привилегии в одной базе данных (joomla), но пытаетесь подключиться к другой базе данных (joomla2). Опечатка?   -  person Björn    schedule 28.04.2009
comment
да, опечатка с моей стороны в вопросе, хотел избавиться от 2, чтобы он был чище, но забыл, что он появится в сообщении об ошибке ... спасибо   -  person Ankur    schedule 28.04.2009


Ответы (6)


Попробуйте заглянуть в таблицы привилегий. Например:

> use mysql;
> select * from db;

Это может дать вам подсказку о том, что идет не так.

Вы также можете попробовать подключиться через tcp, а не через сокет unix, указав user@'127.0.0.1 'и подключившись с флагом -H 127.0.0.1 (если вы используете клиент строки mysql cmd).

Вы пробовали указать пароль, используя часть «IDENTIFIED BY« mypwd »» оператора GRANT?

person scottynomad    schedule 28.04.2009

Согласно справочному руководству по MySQL, я бы сказал, что вы пропустили 'в приведенном выше заявлении.

Ты пробовал:

GRANT ALL ON joomla.* to 'user'@'localhost';
person Xn0vv3r    schedule 28.04.2009

Вы вошли в MySQL как user @ localhost, когда пытаетесь запустить эту команду?

В таком случае вы не сможете назначить себе привилегии, которые потребуются вам для этого, когда вы вошли в систему как пользователь root или другой пользователь, который может назначать привилегии.

person BenM    schedule 28.04.2009
comment
у моего пользователя root нет имени пользователя и пароля. Когда я впервые вхожу в систему, он не запрашивает имя пользователя или пароль, поэтому я предполагаю, что в настоящее время я являюсь пользователем root - person Ankur; 28.04.2009
comment
похоже, что вы не входите в систему как пользователь root. Если вы используете командную строку MySQL, попробуйте запустить команду mysql -u root -h 127.0.0.1. - person BenM; 28.04.2009

Это сработало для меня:

GRANT ALL PRIVILEGES ON joomla.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Я считаю, что проблема в том, что вы не даете пароль.

Кроме того, используете ли вы пользователя, который может предоставлять права другим пользователям? Вы подключаетесь как root или как обычный пользователь?

person kgiannakakis    schedule 28.04.2009
comment
да, все равно то же самое - с паролем, я пробовал каждую комбинацию, пробовал то, что вы мне дали, просто для четырехкратной проверки - person Ankur; 28.04.2009

Всем спасибо. Это не отвечает на вопрос, но я собираюсь переустановить mysql и на этот раз дать ему правильное имя пользователя root и пароль. В прошлый раз я оставил их пустыми. Долгое решение, но оно решит проблему.

person Ankur    schedule 28.04.2009
comment
Придержи лошадей! Пользователь root создается автоматически, если вы не указали пароль, вы должны просто войти в систему, но вам придется явно сделать это как root. Информацию о сбросе пароля root см. В документации по MySQL, dev. mysql.com/doc/refman/5.1/en/resetting-permissions.html - person BenM; 28.04.2009
comment
Спасибо - похоже, это то, что мне действительно нужно. - person Ankur; 28.04.2009

Вы потом перезагружали сервер? Если нет, нужно выдать FLUSH PRIVILEGES

person soulmerge    schedule 28.04.2009