MySQL命令行与Workbench不同步:新建用户无法显示
我来帮你排查下可能的问题,毕竟我也碰到过类似的情况:
先确认用户是否真的创建成功
回到MySQL命令行,用root登录后执行这条命令:SELECT User, Host FROM mysql.user;看看结果里有没有
user_name和localhost的组合条目。如果没有,大概率是之前的创建语句有语法问题——比如你写的identified by password里,password没加单引号的话,MySQL会把它当成关键字而非密码字符串,正确写法应该是IDENTIFIED BY 'your_actual_password'。检查Workbench的连接目标
在MySQL里,localhost和127.0.0.1是两个完全不同的主机身份:localhost对应本地套接字连接,127.0.0.1对应TCP/IP连接。你创建的是user_name@localhost,如果Workbench是用127.0.0.1或其他IP地址连接的,这个用户就不会显示在列表里。
可以打开Workbench的连接配置,确认连接方式是「Local Socket/Pipe」;或者补建一个user_name@'127.0.0.1'用户,覆盖TCP连接的场景。刷新Workbench的用户缓存
有时候Workbench会缓存用户信息,你可以打开「Users and Privileges」面板后,点击右上角的刷新按钮(那个循环箭头图标),或者断开连接再重新登录一次,看看新用户会不会出现。确认Workbench的登录权限
如果你是用root账号登录Workbench的,肯定有权限查看所有用户,这条可以直接排除;但如果是用其他受限账号登录的,可能看不到全部用户列表——不过你说只看到root,应该是用root登的,这条优先级放最后。
如果上面的步骤都试过还是看不到,再检查下GRANT语句和FLUSH PRIVILEGES是否执行成功,有没有报错信息。
内容的提问来源于stack exchange,提问作者jwkoo

