Добавление пользователя в MySQL с именем '@'% 'завершается с ошибкой 1396

9

Я просто попытался добавить нового пользователя в MySQL, используя

CREATE USER 'name'@'%' IDENTIFIED BY '...'

Тем не менее, это происходит со следующей ошибкой:

ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'

Добавление пользователя только для localhost работает нормально:

CREATE USER 'name'@'localhost' IDENTIFIED BY '...'

Я понятия не имею, в чем может быть проблема. Буду благодарен за любые идеи.

(Я пользуюсь mysql Ver 14.14 Distrib 5.1.66.)

Петр Пудлак
источник
Я столкнулся с подобной проблемой, в то время как CREATE / DROP пользователь, я проверил все таблицы предоставления информации о пользователе, я не смог найти какую-либо информацию о пользователе, я попытался отозвать весь доступ и отбросил пользователя, через некоторое время операция работает, не делая любые изменения, я написал мой подробный ответ здесь rathishkumar.in/2018/10/…
Rathish

Ответы:

13

Согласно документам, если вы пропустите @ 'hostname' (то есть CREATE USER 'name'), MySQL будет интерпретировать его как @ @%. Предоставленное вами сообщение об ошибке предполагает, что в системе уже есть имя пользователя '@'% ':

mysql> CREATE USER 'name'@'%' IDENTIFIED BY 'test';
Query OK, 0 rows affected (0.04 sec)

mysql> CREATE USER 'name'@'%' IDENTIFIED BY 'test';
ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'
mysql> CREATE USER 'name' IDENTIFIED BY 'test';
ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'

Если вы удаляете пользователя и по-прежнему получаете сообщение, попробуйте запустить FLUSH PRIVILEGES.

Также посмотрите этот ТАК вопрос для дополнительной информации.

redguy
источник
1

Я столкнулся с этой же ошибкой при использовании образа Docker mysql: 5.7. Основной ошибкой была попытка создать rootпользователя, который существует по умолчанию. Дополнительная информация: https://github.com/docker-library/mysql/issues/129

Как указано в приведенной выше ссылке, решение было НЕ устанавливать MYSQL_USERи MYSQL_PASSWORDв переменных среды при запуске образа докера.

rahuljain1311
источник
Это мне очень помогло! Я не знал, почему я не мог подключиться к БД в докере, и никогда не подозревал, что это было причиной.
dingo_d