MySQL5.7 连接不上的解决办法(本地无法登录)

本文提供了一种在Windows 10系统上解决MySQL 5.7连接问题的详细步骤,包括初始化数据库、修改root用户密码及重启服务等关键操作,适用于初次安装遇到连接失败的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Connecting to MySQL server … Access denied for user ‘root’@‘localhost’ (using password: YES)

之前在旧电脑win8上装mysql5.7 时没有出现这个问题,在新电脑上win10也照之前那样装,装完了发现连接不上。最后参考网友的连上了,真的有用,很多地方都说修改DATA文件夹里的某个文件,可是我装完连DATA文件夹都没有,原来执行下命令就有了,按下面的步骤一步步就没问题了:

接下来就是在DOC窗体中进行配置了!

1、在开始菜单中输入cmd,右击管理员运行!

在窗体中输入cd C:\Program Files\MySQL\MySQL Server 5.7\bin (进入mysql安装路径下的bin文件夹)

2、进入bin文件夹后运行mysqld --initialize 命令,这时你的mysql Server5.7下会自动生成一个data文件夹!(我刚装完后没有这个文件夹,执行这个命令就有了)

3、输入mysqld -install 提示 service successfully installed 。

4、输入net start mysql ,启动mysql服务

5、输入mysql -u root -p 回车,让我们输入密码,因为之前版本的mysql都是没有初始密码的,直接回车就可以,不过现在不行了,不输入密码会报错!

所以我们有修改或添加一个mysql的初始密码或用户!首先,我们要停止mysql服务!

1、停止mysql命令:net stop mysql就可以!

2.输入命令mysqld --skip-grant-tables 之后没有反应。就可以了,不过不要把窗体关了,我们另起一个doc窗体。同时也是用管理员运行!

3、我们在新打开的doc窗体中输入cd C:\Program Files\MySQL\MySQL Server 5.7\bin (进入mysql安装路径下的bin文件夹)

4、然后在在doc窗体输入:mysql -u root ,我们就进入了mysql数据库,如下图:

在这里插入图片描述

5、在doc窗体中输入:update mysql.user set authentication_string=password(‘123qwe’) where user=‘root’ and Host = ‘localhost’;

*特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了
而是将加密后的用户密码存储于authentication_string字段

6、 doc窗体中输入:flush privileges;(更新)

7、输入: quit;(退出)

8、这时,我们需要重新启动下电脑!(我没有重启电脑也可以)

9、这是我们在用管理员的身份打开doc窗体,输入cd C:\Program Files\MySQL\MySQL Server 5.7\bin,进行bin文件夹中,再输入net start mysql,一般情况是已经启动了。

10、输入mysql -u root -p 提示你输入密码:因为上面已经将密码改成了123qwe,所以我输入123qwe,就可以了!(我用这个登录的时候提示我密码过期,:set password for ‘root’@‘localhost’=password(‘123’);)

通过上面的步骤就连接上了!

以下是原文链接地址,我只是根据我的实际操作稍加修改,附上我看到的原文:
https://www.cnblogs.com/xixibaby/p/6549872.html

### 配置Navicat连接MySQL 5.7 #### 创建新连接 在Navicat中创建新的MySQL连接时,需输入服务器地址、端口、用户名和密码。对于本地安装的MySQL服务,默认设置通常如下: - **主机名/IP**: `127.0.0.1` 或者 `localhost` - **端口号**: 默认为 `3306` - **用户名**: 常见默认值为 `root` 确保这些参数与目标MySQL实例的实际配置相匹配[^1]。 #### 处理认证协议差异 如果遇到错误提示 "Client does not support authentication protocol requested by server" (错误码1251),这表明客户端使用的验证方式与服务器期望的方式符。解决方案之一是在MySQL命令行界面更改根用户的认证方法回退到旧版插件,具体操作可以通过运行以下SQL语句实现: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password'; FLUSH PRIVILEGES; ``` 上述命令会将指定账户的身份验证机制更改为兼容性更好的native password模式,并重设其密码[^5]。 #### 修改防火墙规则或安全组策略 当尝试远程访问MySQL数据库而失败时,可能是由于网络层面的安全措施阻止了外部请求到达目的地。确认Windows防火墙或其他任何适用的安全设备允许TCP流量通过设定好的监听端口(通常是3306)[^2]。 #### 安全性和权限管理 考虑到安全性因素,在生产环境中应谨慎授予高特权给特定用户账号;仅赋予必要的最小化权限集即可满足业务需求。此外,建议定期审查并更新现有用户的授权列表以防止潜在风险发生[^4]。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值