MySQL密码正确却无法本地登录怎么办

呵呵,这个MySQL问题真是令人沮丧啊!上周,有客户问我,他的root密码明明是正确的,但是当他本地连接MySQL时,却询问“Access is returned for user 'root'@'localhost' (using password: YES)”。
我当时的第一反应是检查密码、密码、密码,但他们说密码绝对正确。
经过检查,发现users表中缺少一条指向host:localhost的记录。
只有指向主机的记录:主机名(例如服务器IP或那个奇怪的主机名)和主机:1 2 7 .0.0.1 因此,如果您使用 root 连接到本地主机,系统会感到困惑 - “我这里没有像您这样的用户!”
我基本上经历了您提到的这个过程。
首先杀死MySQL进程,然后在启动MySQL时添加--skip-grant-tables参数。
这时候你就会发现,哎!无需密码即可登录!这时候就该检查是否有泄漏、填补间隙了。
Ju keni dy metoda:
1 更改其他记录的host:比如发现root有3 条记录,一条是host:hostname,一条是host:1 2 7 .0.0.1 ,一条是host:%(代表所有主机)。
您可以直接将其中之一更改为 localhost。
例如, UPDATE user SET host='localhost' WHERE user='root' AND host='hostname';这样修改后就可以连接localhost了。

2 直接添加一条记录:如果你删除了以上记录或者不想更改它们,可以直接 INSERT into user (user, host, password) VALUE('root', 'localhost', '你的密码的哈希值'); (密码哈希值值得您自己生成,您可以使用 SELECT PASSWORD('yourpassword') AS hash; 来查找它)。

关于您提到的 % 无法代表 localhost 的问题,这确实是一个有点烦人的细节!我在测试的时候也遇到过类似的情况。
按理说%代表所有主机,localhost也应该可以。
但你遇到的情况是有host=%记录,但是localhost无法连接。
我认为可能是MySQL 5 .1 .5 7 对某些主机匹配有更严格的规则,或者可能与服务器的网络配置(例如bind-address参数)有关。
我在MySQL 5 .0版本上尝试过,似乎没有那么敏感。
检查你的mysql配置中是否有像bind-address = 1 2 7 .0.0.1 或bind-address = localhost这样的设置?如果加上这个设置,那么%确实无效了,因为它只监听指定的IP,不监听名称localhost(或者换句话说,当绑定地址设置为特定IP时,localhost可以解析为1 2 7 .0.0.1 ,但并不完全匹配)。

所以最保险的办法就是直接添加一条host='localhost'的记录。
通常可以通过删除权限来解决问题;然后刷新权限后重新启动MySQL。

还有一个细节。
可以直接用--skip-grant-tables模式登录,但是mysql数据库本身没有了。
如果使用mysql;,会报错,也就是说权限确实被锁定了。
这时候我可以使用mysql -u root -p -h 1 2 7 .0.0.1 进行连接,也就是说主机1 2 7 .0.0.1 是通用的,但是主机localhost是单独登录的。
这确认必须将单独的记录添加到 localhost。

简而言之,使用 MySQL 这样的东西,细节非常重要。
The host field in the users table is really hard to understand. The crux of the problem you encountered is the missing root data with host='localhost'. You can try to add a direct, then flush privileges;然后重新启动,也许它会起作用。
If you're not sure, think again if your binding address setting is too rigid.

怎样通过CMD命令提示符访问本地mysql数据库

坦白说,启动MySQL服务其实很简单,只需使用“net start mysql”命令即可。
我们先来说说最重要的事情。
该命令在 Windows 系统上特别有用。
还有一点就是,登录MySQL时,需要在命令行输入“mysql -u 用户名 -p”。
按 Enter 后,系统将提示您输入密码。
说实话,很多人此时往往会忽略密码输入的细节。
起初我以为密码是默认的,但后来意识到我错了。
我需要确保密码正确。
另一个重要的一点是,当您输入密码时,屏幕上不会出现任何字符。
这是出于安全原因。
因此,不用担心。
无论您输入什么,都保持不变。
最后,请记住,一旦成功登录,就可以开始使用MySQL进行数据库操作。
还有一件事需要注意。
如果您在输入密码时遇到问题,例如忘记密码,您可能需要重置密码或使用其他方法来恢复访问。

mysql客户端怎么登录

登录MySQL只需几步:
终端命令:mysql -u root -p
本地使用:mysql -u root -p
回车后输入密码。
终端不会显示
如果输入正确的密码 mysql> 会亮起
输入以使用您的库
Safet;远程连接命令提示符中的密码;确保IP正确并确保服务已启用
3 3 06 端口防火墙可用
上周处理了远程连接失败的问题;这是端口问题
你自己看看。