故事开场
年前的时候,因为一个练手工程的架构需要用到关系型数据库,考虑到 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 字段的意义
- 火烧火燎
重启服务,立即检验
(完)
网友评论