请选择 进入手机版 | 继续访问电脑版
  • 关注官方微信 微信公众号 添加方式:
    1:搜索微信号(gogolinux
    2:扫描左侧二维码
  • 登录 注册
  • 一起学LINUX - GOGOLINUX

    查看: 861|回复: 0

    忘记Mysql用户密码怎么办?

    [复制链接]

    3162

    主题

    3168

    帖子

    9865

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    9865
    发表于 2020-6-19 17:04:42 | 显示全部楼层 |阅读模式
    我的Mysql数据库在云服务器上,很久没有使用了,现在换了新的电脑 找不到原来的密码。
    我先用Xshell通过主机名(ip地址)   +linux的用户密码连接到主机


    然后我来通过ls命令找到mysql的配置文件,my.ini .这时候就体现出grep这个命令的好用之处了!



    找到了哈哈,有两个my.cnf 文件,后缀带.d的是目录,先看看里面有什么


    卧槽,cat 居然看不到?原来忘记cd过去了,现在补充一条 cd /etc 切换至该目录



    OK成功找到了,里面有mysql缓存的一些配置我想我现在需要的应该是它的pid文件吧? 先把这个放一放 看看cnf.d里面有什么


    图虽然截得有点残缺 但是你们可以看到 total 0,意思啥都没有,OK虽然不知道是做什么的 但是里面是空的 目前可以确定 需要的文件是/etc 下的my.cnf了,如果在Windows系统下这个文件应该叫做mysql.ini?或者my.cfg之类的!
    接下来用vim 打开my.cnf 文件 ,网上都说vim很强大,但是我觉得简单的功能什么的对我而言还不如nano好用呢,因为vim用的不熟练 命令也太多 很烦躁!


    打开之后需要在mysqld下面添加这样一条命令
    skip-grant-tables
    跳过grant表,百度搜了一下 这大概是mysql的用户权限表,大家要记住哦 grant  哥软特!许可的意思。打开了之后你会发现按什么都没用的,为什么呢?这时候要按一下键盘上的I 键 切换到插入模式,然后就可以输入了。


    顺便看看MySQL下其他有哪些东西, datadir 这大概是数据文件的存放目录,在var下。symbolic-link 符号链接?不清楚做什么的,还有一个socket 袜子文件,大概是与linux kernal内核通讯的吧! pid-file 可能是 parentID file 具体做什么的不清楚,分库分表?好吧下面干正经事,修改完配置文件后按ESC ,VIM 就是这么关闭的 很66。然后按“:”(这里是冒号,就是最普通的那个冒号。)最底部可以看到有命令行, 输入wq。不懂这个wq啥意思(我去?)。保存后退出。输入service mysqld restart.重启mysqld进程.我以前一直不懂mysqld和mysql是啥区别后来我看过 mysqld是myqld的根进程,这里的d 很有可能是dad的意思。
    OK重启之后正常登录数据库,mysql -u root -p 叫我输入密码我直接敲了回车,哎呀我去 看见了welcome 吗。这小子666啊,真进去了!



    然后use mysql 切换到mysql数据库,没错就是mysql数据库的mysql数据库,它里面有个user表 下面执行sql语句

    update user set authentication_string=password('123456') where user='root';
    将authentication_string 设成 123456?大概是这意思,它说query ok ,1row affected 意思就是真的OK了 不信的话你可以select查询一下



    然后
    flush privileges;
    输入这个刷新 一下权限。


    输入quit 退出,然后他和你说了句Bye,我也回了他一句。。


    vim /etc my.cnf 回去把配置文件改回去,这玩意也是挺危险的啊,别人黑进你电脑就能上你数据库了,所以这就是服务器和数据库在同一个内网网段,数据库主机不上外网的原因。但是我穷啊,买个1核1G服务器都一个月不用吃饭了。 OK改完了之后esc + :  + wq退出 这次应该更容易懂一点。。   




    完事了之后重启 service mysqld restart ,然后正常登录发现 密码123456能够正常登录,不输入密码的却不行了。是不是齐活了?错!


    因为这个数据库我之前改过密码规则,有的人用新的数据库可能会出问题。
    如果出现:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    意思就是说你密码现在的规则不行,规则什么不行呢?比如密码长度啊,是否纯数字啊 大小写混用啊 等等。别急有办法解决。这时候你只需要:
    set global validate_password_policy=0; set global validate_password_mixed_case_count=2;
    这下哈哈了吧 policy 0就是纯数字OK的
    case_count =2,就是最低8位密码,如果是1或者小于1默认最低4位密码。为啥这样子不去解释了 ,现在基本上能够解决所有关于MYSQL密码的问题了
    希望大家使用愉快,不明白的地方下面回复奥!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    分享到:
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    官方微博:

    官方头条号:

    官方微信

    手机访问:

    官方微信

    QQArchiver 手机版 小黑屋 一起学LINUX - GOGOLINUX 闽ICP备18025837号-1 Discuz! X3.4 Powered by © 2001-2013 Comsenz Inc. 

    本站资源均来自互联网或会员发布,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!

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