在mysql.user
表中成功创建新用户'u1'和'u2'并将其密码分别设置为pass
和PASSWORD('pass')
后,我无法以任一用户身份登录。请查看以下命令,帮助我弄清楚我错过了什么。请注意,每个隐藏密码只是字符串“pass”
为什么拒绝访问?请注意,当我创建用户u1和u2
答案 0 :(得分:3)
CREATE USER 'u3'@'localhost' IDENTIFIED BY 'pass';
CREATE USER 'u4'@'localhost' IDENTIFIED BY 'pass';
来自OP的一个好问题提示:上面创建的两个用户对服务器基本上没有没有权限,除了登录和坐在那里。他们正在等待Grant命令,允许他们对某些数据库拥有各种访问权限。
然后尝试一下。创建创建用户命令是有原因的。
之后,您将处理特定数据库的授权。并重新访问主机问题。
但这只是一个考验。
然后从o / s命令行登录,它是mysql -uu3 -p
和ENTER。然后会提示您输入密码。除非您知道自己正在进行维护,否则强烈建议不要以root用户身份登录。此外,请不要将密码烘焙到mysql -uu3 -ppass
等脚本文件中,因为您的文件可能会被盗用,而密码也是如此。注意,在我的例子中,-u和-p之后没有空格。
是的,使用-p开关,当系统提示您输入密码时,不可见。
从Manual创建用户命令。
从Manual删除用户命令。
来自Manual的授权命令。请注意不要在Grant命令中使用通配符和WITH GRANT OPTION
。您需要小心地为他们所需的用户授予最小权限,而不是懒惰和应用通配符。
答案 1 :(得分:1)
您是否尝试在连接前重新启动服务器?来自The MySQL Documentation:
如果使用INSERT,UPDATE或DELETE等语句直接修改授权表,则在重新启动服务器或指示重新加载表之前,您的更改不会影响权限检查。如果直接更改授权表但忘记重新加载它们,则在重新启动服务器之前,更改将不起作用。这可能会让您想知道为什么您的更改似乎没有任何区别!