设为首页 收藏本站
查看: 296|回复: 0

[经验分享] MySQL root用户忘记密码解决方案(安全模式,修改密码的三种方式)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-11 14:28:49 | 显示全部楼层 |阅读模式
1.关闭正在运行的MySQL
2.启动MySQL的安全模式,命令如下:


    mysqld --skip-grant-tables  

or


    mysqld-nd --skip-grant-tables  


3.使用root用户[免密码]登陆MySQL


    mysql -u root -p  


输入密码时,直接回车
4.选择MySQL系统库


    use mysql  



5.查看当前系统用户root的密码


    select user,host,password from user where user="root"  


查看的password是经过加密的,若以后想要恢复当前密码可以先运行这条命令备份一下当前的密码
6.修改root用户的密码


    update user set password=PASSWORD("your_password") where user="root"  


这里是直接修改了root用户在所有登陆位置的密码,若你仅仅只想修改root在某一处的密码,可以在上一条命令中增加一个限定条件host='somewhere'
比如,下面的命令修改了root用户在本机localhost的登陆密码


    update user set password=PASSWORD("your_password") where user="root" and host="localhost"  


上面的操作是直接对MySQL系统库mysql进行修改,安全性较低,一旦出现误操作,成本高,难恢复,并且仅限于对mysql库有UPDATE权限的用户,MySQL本身为我们提供了一种更加简便的操作方式,在此作一下简单的介绍
修改当前登陆用户的密码,使用SELECT CURRENT_USER();可查看当前登陆用户


    SET PASSWORD = PASSWORD('cleartext password');  


修改bob用户在%.example.org位置上的登陆密码,注意这里的host地址%.example.org是必须要存在的


    SET PASSWORD FOR 'bob'@'%.example.org' = PASSWORD('cleartext password');  


当然我们也可以通过GRANT的方式修改密码


    GRANT USAGE ON *.* TO 'bob'@'%.example.org' IDENTIFIED BY 'cleartext password';  


关于修改密码的详细内容还是请见官方文档(5.6)
http://dev.mysql.com/doc/refman/5.6/en/set-password.html
7.刷新一下系统的权限


    flush privileges;  


8.关闭MySQL的安全模式,重新启动即可

注:
在第2步,启动安全模式的时候,命令行可能会一直处于挂起状态,此时Ctrl+c也不能终止运行,这时候只要通过netstat -ao查看MySQL端口是否处于监听状态,如是即代表MySQL已经进入了安全模式,出现这种现象是主要因为MySQL不提倡安全模式长时间运行

使用mysql命令连接数据库时可能会出现如下错误:
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
网上关于此错误的描述有很多,我们知道MySQL的默认端口是3306,当以其他端口启动服务时,使用mysql命令又没有指定对应的端口,当然就无法连接Server啦

附加信息:
MySQL官方文档(5.5) http://dev.mysql.com/doc/refman/5.5/en/index.html
MySQL官方文档(5.6) http://dev.mysql.com/doc/refman/5.6/en/index.html
以此类推...

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-37869-1-1.html 上篇帖子: MySQL HA架构下innodb_flush_log_at_trx_commit及sync_binlog参数 下篇帖子: MySQL分组然后取每个分组中按照某些字段排序的topN条数据
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表