При создании и удалении пользователя в mysql ERROR 1396 (HY000): операция CREATE USER

Я пытаюсь создать нового пользователя в mysql,

    create user 'saravanakumar'@'localhost' identified by 'saravanakumar';

он показывает ошибку как,

    ERROR 1396 (HY000): Operation CREATE USER failed for 'saravanakumar'@'localhost'

после того, как я прочитал это

ОШИБКА 1396 (HY000): операция CREATE USER не удалась для 'jack' @'localhost'

Я удаляю пользователя. Но я не могу. Он показывает

    mysql> SELECT User FROM mysql.user;
    +---------------+
    | User          |
    +---------------+
    | root          |
    | saravanakumar |
    | saravanakumar |
    |               |
    | root          |
    | saravanakumar |
    |               |
    | root          |
    +---------------+
    8 rows in set (0.00 sec)

    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)

    mysql> SELECT User FROM mysql.user;
    +---------------+
    | User          |
    +---------------+
    | root          |
    | saravanakumar |
    | saravanakumar |
    |               |
    | root          |
    | saravanakumar |
    |               |
    | root          |
    +---------------+
    8 rows in set (0.00 sec)

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

Ответ 1

ERROR 1396 (HY000): Operation CREATE USER failed for 'saravanakumar'@'localhost'

Действительно указывает, что пользователь уже существует или существует.

FLUSH PRIVILEGES не удаляет пользователей.

Reloads the privileges from the grant tables in the mysql database.

The server caches information in memory as a result of GRANT, CREATE USER, 
CREATE SERVER, and INSTALL PLUGIN statements. This memory is not released 
by the corresponding REVOKE, DROP USER, DROP SERVER, and UNINSTALL PLUGIN 
statements, so for a server that executes many instances of the statements 
that cause caching, there will be an increase in memory use. 
This cached memory can be freed with FLUSH PRIVILEGES.

Вы ищете ПОЛЬЗОВАТЕЛЯ DROP.

DROP USER user [, user] ...

http://dev.mysql.com/doc/refman/5.1/en/drop-user.html


Порядок работы:

DROP USER 'saravanakumar'@HOSTNAME;
CREATE USER 'saravanakumar'@HOSTNAME [IDENTIFIED BY 'password'];

Вам, вероятно, понадобится очистить привилегии, если вы используете delete из (do not). Запомнить: это не обязательно отменяет все привилегии, которые может иметь этот пользователь (например, привилегии таблицы), вам придется сделать это самостоятельно - если нет, вы не сможете воссоздать пользователя.

REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'saravanakumar'@HOSTNAME;
DELETE FROM mysql.user WHERE user='saravanakumar';
FLUSH PRIVILEGES;
CREATE USER 'saravanakumar'@HOSTNAME [IDENTIFIED BY 'password'];

"пользователь" требует указать имя учетной записи

Syntax for account names is 'user_name'@'host_name'

и

An account name consisting only of a user name is equivalent 
to 'user_name'@'%'. For example, 'me' is equivalent to 'me'@'%'.

Дополнительная информация: http://dev.mysql.com/doc/refman/5.1/en/account-names.html


Прочтите эти отчеты об ошибках для дальнейшего уточнения

http://bugs.mysql.com/bug.php?id=28331

http://bugs.mysql.com/bug.php?id=62255

Ответ 2

Мне работает, я устанавливаю имя хоста в UPPERCASE:

Пользователь DROP USER '@' LOCALHOST

Ответ 3

select User, Host from mysql.user;

Сделал для меня ясно, что происходит. Я оказался с одним и тем же пользователем под несколькими хостами. Удаление ненужных помогло!