我只是尝试使用向 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 会将其解释为具有 @'%'。您提供的错误消息表明系统中已经存在用户'name'@'%':
如果您删除用户后仍然收到消息,请尝试运行 FLUSH PRIVILEGES。
另请参阅此 SO question以获取更多信息。
我在使用 mysql:5.7 docker 映像时遇到了同样的错误。主要错误是尝试创建
root
默认存在的用户。更多信息:https ://github.com/docker-library/mysql/issues/129如上面的链接中给出的,解决方案是在启动 docker 映像时不要在环境变量中设置
MYSQL_USER
和设置。MYSQL_PASSWORD