при создании и удалении пользователя в mysql ошибка 1396 (HY000): операция создания пользователя

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

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

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

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

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

ошибка 1396 (HY000): не удалось создать пользователя для "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)

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

3 ответов


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

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

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

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 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 from (не). помните: это не обязательно отменять все привилегии, которые может иметь этот пользователь (например, привилегии таблицы), вам придется сделать это самостоятельно - если вы этого не сделаете, вы не сможете воссоздать пользователя.

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


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

пользователем капля ''@'localhost'а

select User, Host from mysql.user;

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