Windows:解决MySQL登录ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor=YES)问题

我在下载的MySQL是8.0.32版本,刚下的时候没什么问题第二天启动MySQL服务就出现了

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

这样的问题,到现在还是不理解为什么会出现这样的问题但是问题已经解决了,希望我的文章可以帮助和我一样刚入门的小白。

一、MySQL密码错误的解决方法

  1. 打开以管理员身份打开终端,输入指令net stop mysql停止MySQL服务,停止服务之后不要删后面还有用

  1. 找到你MySQL的安装路径并删除该文件夹下的data文件夹(如果有就删掉,没有就不用管)

3.到终端里面输入mysqld --initialize然后等一下(这段时间就是在创建data文件夹),再次输入net start mysql启动MySQL服务,这时便会重新产生一个临时的登录密码

4.然后使用全局搜索找到.err文件(这里我用的是everything,用它来找零碎的文件是真的好用),或者直接去安装目录的data文件夹里面找(里面只有.err这一个文件),用记事本打开查找password,结尾就是登录密码

原文参考链接:https://blog.csdn.net/liu_xin_xin/article/details/96473805

二、MySQL修改密码

1.以管理员身份打开终端,输入net stop mysql停止MySQL服务

2.再次输入mysqld --console --skip-grant-tables --shared-memory跳过密码验证登录,前面的终端那不要关再打开一个新的管理员终端输入mysql -u root -p这时直接回车就行了

  1. 输入两段命令使密码置空

use mysql

update user set authentication_string=''where user='root';

4.输入quit退出MySQL,这个别关后面有用

5.这时就可以关掉以mysqld --console --skip-grant-tables --shared-memory启动的管理员终端了

6.在管理员终端输入net start mysql启动MySQL服务

7.这时输入mysql -u root -p回车就能进去了,因为密码已经置空所以不需要密码

8.这时输入ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';,这样新密码就设置好了

原文参考链接:https://www.maoziwang.com.cn/zonghe/51475.html

三、MySQL服务名无效等问题

有些同学可能在启动和关闭MySQL服务时碰到MySQL服务名无效的问题,我把原文链接放下面供大家参考

原文链接:https://blog.csdn.net/qq_21518059/article/details/124696622

  • 0
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
根据你提供的代码,有几个问题可能导致数据无法成功插入数据库: 1. 连接数据库方法不正确:在你的代码中使用了 `mssql.createConnection` 方法来创建与数据库的连接,但是实际上应该使用 `mssql.connect` 方法来连接数据库。修改连接数据库的代码如下: ```javascript // 创建与数据库的连接 mssql.connect({ server: '192.168.10.223', user: 'sa', password: 'Servo01', database: 'demo' }, function (err) { if (err) { console.error('Error connecting to database:', err); return; } console.log('Connected to database!'); }); ``` 2. 注册页面的 POST 请求处理方法不正确:在你的代码中,你将注册页面的 POST 请求处理方法设置为 `/`,但是实际上应该是你注册页面的路由路径。请将 `app.post('/')` 改为你注册页面的实际路由路径,例如 `app.post('/register')`。 3. SQL 注入漏洞:你在插入数据到数据库时直接使用了用户提交的数据拼接 SQL 查询语句,这存在 SQL 注入的风险。为了避免这个问题,推荐使用参数化查询或者预编译语句来插入数据。修改插入数据到数据库的代码如下: ```javascript // 将数据保存到数据库 const query = 'INSERT INTO username (name, password, email) VALUES (@name, @password, @email)'; const request = new mssql.Request(); request.input('name', mssql.VarChar, name); request.input('password', mssql.VarChar, password); request.input('email', mssql.VarChar, email); request.query(query, function (err, result) { if (err) { console.error('Error saving data to database:', err); return; } console.log('数据已保存到数据库!'); }); ``` 通过使用参数化查询,可以确保用户提交的数据不会被误解为 SQL 查询语句的一部分,从而提高了安全性。 请根据以上建议进行修改,并尝试重新运行代码来查看问题是否解决。如果问题仍然存在,请提供更详细的错误信息以便进一步排查。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值