论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
数据库
›
Mysql
›
MySQL root用户密码忘记怎么办(Reset root account pas ...
MySQL root用户密码忘记怎么办(Reset root account password)
商道如狼道
金牌会员
|
2024-9-5 21:50:46
|
显示全部楼层
|
阅读模式
楼主
主题
669
|
帖子
669
|
积分
2007
在使用MySQL数据库的的过程中,不可避免的会出现忘记密码的现象。普通用户的密码如果忘记,可以用更高权限的用户(例如root)进行重置。但是如果root用户的密码忘记了,由于root用户本身就是最高权限,那这个方法就行不通了。本文先容2种在忘记root用户用户密码的情况下,怎样进行重设。
一、使用–init-file参数重设
由于忘记了root密码,我们是无法通过root用户毗连到数据库的,因此也无法通过客户端执行alter user或set password命令来重置密码。MySQL提供了init-file参数,在启动时可以读取文件,我们将修改root用户密码的SQL放在文件中,通过重启来执行修改密码命令。
假设我想要将root密码修改为’abc123’,先测试一下,密码是不对的:
mysql -uroot -pabc123
复制代码
1.1 停止mysql进程
下面演示的是通过kill命令杀死mysqld进程,如果可以正常停止也可以。
首先通过ps -ef | grep mysqld
查询mysql数据库的进程号:
ps -ef | grep mysqld
复制代码
这里显示数据库相关的进程有2个(第3个是grep命令),由于我是通过mysqld_safe脚本启动的数据库,因此有一个额外的保卫进程:
• 进程号为23619的mysqld_safe保卫进程,负责监控mysqld的状态
• 进程号为24846的mysqld进程,这个是数据库服务进程(它的父进程号23619)
查询到进程号后,使用kill命令依次将mysqld_safe和mysqld杀死,注意要先杀mysqld_safe,如果先杀mysqld,那么保卫进程检测到mysqld进程挂了,会立刻将mysqld重新启动:
kill -9 23619
kill -9 24846
复制代码
如果只有一个mysqld进程,那么只要将其杀掉即可。
1.2 创建初始化文件
创建一个文本文件,名称随意(这里是reset_password.sql),里面写上更改root密码的SQL:
alter user 'root'@'localhost' identified by 'abc123';
复制代码
文件创建后给mysql用户增长读取权限(通常使用操作系统的mysql用户来启动数据库进程)
chmod a+r reset_password.sql
复制代码
1.3 使用init-file参数重启数据库
使用–init-file=/root/reset_password.sql 参数启动数据库,启动时会自动执行文件种的密码修改SQL:
mysqld_safe --init-file=/root/reset_password.sql &
mysql -uroot -pabc123
复制代码
可以看到启动后,root用户的密码已经乐成被修改为’abc123’,最后将reset_password.sql文件删除即可。
二、使用–skip-grant-tables参数重设
MySQL的skip-grant-tables参数可以指定在启动时忽略权限认证,这意味着任何用户都可以不用密码登陆数据库,并且具有所有权限,这是一个伤害的状态。因此当使用skip-grant-tables启动时,MySQL会自动启用skip-networking参数,克制所有远程毗连。
2.1 停止mysqld进程
停止或杀掉mysqld进程,参照上一节内容。
2.2 使用skip-grant-tables重启数据库
使用skip-grant-tables参数启动数据库,并使用root用户登陆:
mysqld_safe --skip-grant-tables &
mysql -uroot -p
复制代码
这里提示了Enter password:,但现实是不必要输入密码的,直接回车便可登陆。
2.3 修改root密码
加载权限表并修改root密码,这里将密码修改为abc456:
flush privileges;
alter user 'root'@'localhost' identified by 'abc456';
复制代码
2.4 重启数据库
使用正常状态重启数据库
mysqladmin shutdown
mysqld_safe &
mysql -uroot -pabc456
复制代码
可以看到root用户的密码乐成被修改为abc456
以上便是MySQL在忘记root用户密码的两种修改方式,希望对你有帮助。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
商道如狼道
金牌会员
这个人很懒什么都没写!
楼主热帖
SQLI-LABS(Less-5)
【python】实现文章同步csdn社区自动化 ...
到底什么是小程序插件?
微信小程序云开发中的command简介 ...
SAP集成技术(十)混合集成平台 ...
一文详解如何在 ChengYing 中通过产品 ...
MySQL数据库安装
软件测试 黑盒测试之等价类划分测试 ...
选读SQL经典实例笔记08_区间查询 ...
【技术积累】Spring Boot中的基础知识 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表