linux中mysql忘记密码解决办法
1. 关闭mysql服务,看到网上的很多说是用这个命令/etc/init.d/mysqld restart ,但是我在init.d文件夹中没有找到mysqld文件,所以在执行该命令的时候一直报错,然后换成了 sudo service mysql stop关闭mysql服务成功
2.安全模式下启动mysql 查看网上说的有两种方法第一种是直接用命令
mysqld_safe --skip-grant-tables &
但是我在使用这个命令的时候也报错了。
第二方法(可行),修改mysql的配置文件
# vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
3. 启动mysql服务
我使用的命令是: sudo service mysql start
4. 修改root用户密码
这个时候你可以直接在mysql中用命令行登陆进数据,也可以使用工具Navicat
使用Navicat工具更加便捷,我就直接使用工具
配置好上面的数据连接,密码框中不用填写。
进入数据库后,打开mysql数据库查看user表中的数据
查看你的root账户的密码存的字段名称
在网上很多用的都是
UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root'
这个sql语句,但是我发现我的密码存的不是Password字段中,所以最开始执行这个语句的时候一直都失败,打开表中一看这个密码是存在
authentication_string 字段中的,所以执行的sql语句换成
UPDATE `user` set authentication_string=PASSWORD('自己的密码') where `user`='root'
这个语句中的PASSWORD() 这个是数据的一个加密方法。
5. 把第二步修改的mysql配置中的skip-grant-tables 这一行去掉 (一定要去,要不让所有的人不要密码就可以直接进入数据库),还原成原来的样子。
6.用命令重启mysql服务: sudo service mysql restart
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具