| Mysql 5.7 事故现场:遗忘登陆密码

故事开场

年前的时候,因为一个练手工程的架构需要用到关系型数据库,考虑到 Mysql 是主流,最终还是卸载了电脑里最初上手的 MariaDB,开始找 Mysql 安装包。几经周折,成功在非系统盘安装了 Mysql 5.7。“地雷”就是当时埋下的,没有及时记录用户的登陆密码啊!

记一笔:Mysql 配置相关

  • 对 my.ini 文件的简单修改
    default-character-set=utf8
    character-set-server=utf8
    innodb_buffer_pool_size=2G
  • 使用 mysql -u root -p 登陆,输入 status 命令查看连接信息

险情预见

今天又上“战场”,顿时懵了,不是 root ?做过很多尝试之后,我认输了。霎时,悔不当初,深刻反省。

险情处理

  • 山重水复
    开始在网上找解决方案,介绍的方案都是:登陆时绕过认证,然后修改登陆密码,再启用认证登陆。
    在思索是重装软件还是尝试一把的过程中,我灵光一闪——除了命令行,印象中我用 navicat 连接过数据库。满怀期待打开 navicat,果然保存了历史连接,然而,并没有能让我看到明文密码。
  • 柳暗花明
    虽然没能拿到明文密码,但是我已经登陆进来了,意味着我可以立即修改用户登陆密码。此时需要做的事情是,定位到 mysql 库下的 user 表,修改 root 用户的登陆密码。你需要知道:这个版本下的 Mysql,user 表没有了 password 字段,取而代之有一个 authentication_string 字段,它表示的是 经 password 函数加密后的用户密码。
-- 修改 root 用户的登陆密码为 root
update user set authentication_string=password('root') where user='root';
解释 authentication_string 字段的意义
  • 火烧火燎
    重启服务,立即检验

(完)

你可能感兴趣的:(| Mysql 5.7 事故现场:遗忘登陆密码)