2009-04-28 2 views
0

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

GRANT ALL ON joomla. * Пользователю @ localhost;

Я попытался так много версий, но все они возвращаются: ERROR 1044 (42000): Доступ запрещен для пользователя «» @ «локальный» в базу данных «joomla2»

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

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

+0

Похоже, что вы предоставляете права на одну базу данных (joomla), но пытаетесь подключиться к другой базе данных (joomla2). Опечатка? –

+0

Да, опечатка с моей стороны в вопросе, хотелось избавиться от 2, поэтому он был чище, но забыл, что всплыл бы в ошибке msg ... спасибо – Ankur

ответ

2

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

> use mysql; 
> select * from db; 

Это может дать вам намек на то, что не так.

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

Вы пытались указать пароль с помощью команды «IDENTIFIED BY» mypwd «» в заявлении GRANT?

1

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

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

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

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

+0

yep еще одно и то же - с паролем, я пробовал каждую комбо , попробовал то, что вы дали мне, а всего лишь с четырехкратной проверкой. – Ankur

1

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

Пробовали ли вы:

GRANT ALL ON joomla.* to 'user'@'localhost'; 
+0

да пробовал это много раз, но спасибо – Ankur

1

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

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

+0

У моего пользователя root нет имени пользователя и пароля.Когда я изначально вхожу в систему, он не запрашивает ни одного имени пользователя или пароля, поэтому я предполагаю, что я являюсь пользователем root в это время – Ankur

+0

, похоже, что вы не вошли в систему как пользователь root. Если вы используете командную строку MySQL, попробуйте запустить команду «mysql -u root -h 127.0.0.1». – BenM

0

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

+1

Держите лошадей! Пользователь root автоматически создается, если вы не указали пароль, тогда вы должны просто войти в систему, но вам придется явно делать это как root. См. Документы MySQL для получения информации об сбросе пароля root, http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html – BenM

+0

Спасибо - это похоже на то, что мне действительно нужно. – Ankur

0

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

Смежные вопросы