Я просто попытался добавить нового пользователя в 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
.)
Ответы:
Согласно документам, если вы пропустите @ 'hostname' (то есть CREATE USER 'name'), MySQL будет интерпретировать его как @ @%. Предоставленное вами сообщение об ошибке предполагает, что в системе уже есть имя пользователя '@'% ':
Если вы удаляете пользователя и по-прежнему получаете сообщение, попробуйте запустить FLUSH PRIVILEGES.
Также посмотрите этот ТАК вопрос для дополнительной информации.
источник
Я столкнулся с этой же ошибкой при использовании образа Docker mysql: 5.7. Основной ошибкой была попытка создать
root
пользователя, который существует по умолчанию. Дополнительная информация: https://github.com/docker-library/mysql/issues/129Как указано в приведенной выше ссылке, решение было НЕ устанавливать
MYSQL_USER
иMYSQL_PASSWORD
в переменных среды при запуске образа докера.источник