先别慌,先别急,密码忘了,是不是感觉像摔进了没有梯子的井,想爬出来还得摸黑?新版MySQL忘了密码,这事儿听起来像“哥都忘了我自己的身份证号”,但别怕,咱们一步步把这密码夺回来!
首先,咱得明白,MySQL新版密码重置流程和旧版还是有点不一样,官方一改密码存储和加密方式,密码刹那间就变成摩斯密码,得用新方法解锁。先给你摆个大概流程,跟我走!
第一步,停掉MySQL服务!没错,直接暴力一点,用命令行来个“sudo systemctl stop mysql”或者“service mysql stop”,保证数据库服务彻底停服,像停电一样,进不去了。要不然你那密码截胡计划就GG了。
第二步,重启MySQL不验证密码!这招最骚,意想不到吧?用命令“mysqld_safe --skip-grant-tables &”就能直接让数据库无视验证,给你开门做“后台管理员”。这个姿势告诉MySQL:“放俺进来,咱俩先握手言和。”
你别激动,这时候MySQL虽然没密码,但是进去了得注意安全,先别随便乱玩,要稍微用点心。先登录:
```mysql -u root```
第三步,改密码!这个关键战斗,老铁,别怕,这里关键点来了。在新版MySQL(5.7以上)密码默认是用`ALTER USER`命令改的,千万别用旧味儿的`SET PASSWORD`(用着到时炸了锅)。
示例操作如下:
```sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;
```
如果出现“ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement”,说明老哥你这下进了特殊模式,得稍微玩点小花招:先执行
```sql
FLUSH PRIVILEGES;
```
然后再试一次改密码命令。
第四步,重启MySQL服务!改完密码后,赶紧关闭跳过权限验证的模式,重新启动MySQL。命令类似于第一步,只不过是启动:
```sudo systemctl start mysql```
好了,接下来你用新密码登录,试试看是否成功。没毛病的话,恭喜,密码找回大作战圆满完成!
不过,说了这么多,有些朋友会问,“我忘记密码了,怎么可能还记得root账号?”其实,很多场景下,除了root,也可以用你设定的其他超级权限用户来操作。如果你连那个都忘了,找到服务器管理员或者有访问权限的人来帮忙也是迫不得已的通路,说不定还能挂个“急寻MySQL密码管理员”的招聘广告……
如果你是懒得折腾小白用户,直接想要“秒懂密码找回”的那种,下面这个神器命令组合你一定要背熟:
停服 -> 带跳过权限启动MySQL -> 改密码 -> 重启并用新密码登录。三步走,灵魂操作,不服来辩。
还有,千万别修改`user`表的`password`字段用`UPDATE`来改密码,这招太老了,新版MySQL密码加密体系变了,用这个方法会让数据库不能认账,一定要用`ALTER USER`!
说到这里,有没有觉得MySQL在玩“找你妹密码”的老游戏!差点我自己都忍不住开个脱口秀了。哦对了,顺带给你们推个“隐形福利”:玩游戏想要赚零花钱就上七评赏金榜,网站地址:bbs.77.ink,顺手打个广告,毕竟人生嘛,要会找副业哈。
看到这,差不多你就可以“躺平”了,不过你说MySQL密码到底是个什么梗?其实就是一场心灵考验:你知道数据库密码,从来不怕忘,只怕连回忆都不放行。对了,快去试试,我先去给密码备份做个Vlog去了。
---
**Sponsor**
新版MySQL密码忘记了?别慌,这有救命稻草!
哎呀,各位老铁,是不是经常遇到这种情况?辛辛苦苦装好的MySQL,用着用着,突然有一天,Duang的一下,密码忘了!脑袋一片空白,感觉整个世界都崩塌了?别怕!谁还没个记性不好的时候呢?(手动狗头)今天就来给你们分享一下,新版MySQL密码忘记了,怎么把它找回来!
咱先得承认,忘记密码这事儿,确实挺让人头大的。就像你千辛万苦练就了一身绝世武功,结果发现秘籍丢了,这滋味儿,酸爽!不过,别灰心,办法总比困难多嘛!
首先,我们要搞清楚一点,新版MySQL在密码管理上做了不少升级,安全系数更高了。所以,想靠“一键破解”之类的骚操作,基本上是行不通的。老老实实跟着我一步一步来,才是王道!
**准备工作:**
1. **服务器管理员权限:** 这一点很重要,没有管理员权限,啥也白搭。
2. **MySQL安装目录:** 找到MySQL的安装目录,待会儿要用到。
3. **一颗冷静的心:** 别慌,越慌越容易出错。深呼吸,告诉自己:“我能行!”
**具体步骤:**
1. **停止MySQL服务:** 找到你的MySQL服务,停掉它!这一步很关键,不然待会儿修改配置文件的时候,可能会出现冲突。就像你要给房子装修,肯定得先把人清出去吧?
* **Windows:** 在“服务”里找到MySQL服务,右键停止。
* **Linux:** 使用命令 `sudo systemctl stop mysqld` 或者 `sudo service mysql stop`
2. **修改MySQL配置文件:** 找到MySQL的配置文件`my.cnf`(Linux)或者 `my.ini`(Windows)。一般来说,它在MySQL的安装目录下。用文本编辑器打开它,在`[mysqld]`节点下,添加一行代码:
```
skip-grant-tables
```
这行代码的意思是,跳过权限验证。这样,我们就可以在不输入密码的情况下,进入MySQL控制台了。
**注意:** 修改配置文件之前,最好备份一下,万一改错了,还能恢复。就像你玩游戏之前,先存档一样,以防万一嘛!
3. **重启MySQL服务:** 修改完配置文件后,保存,然后重启MySQL服务。
* **Windows:** 在“服务”里找到MySQL服务,右键启动。
* **Linux:** 使用命令 `sudo systemctl start mysqld` 或者 `sudo service mysql start`
4. **免密码登录MySQL:** 现在,你可以直接在命令行输入`mysql -u root -p`,然后回车。因为我们跳过了权限验证,所以不需要输入密码,就可以直接进入MySQL控制台了!是不是感觉很神奇?
5. **修改root密码:** 进入MySQL控制台后,就可以修改root密码了。执行以下SQL语句:
```sql
UPDATE mysql.user SET authentication_string=PASSWORD('你的新密码') WHERE User='root';
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;
```
把`你的新密码`替换成你想要设置的新密码。
**注意:** 新密码一定要复杂一点,不然容易被黑客攻击。最好包含大小写字母、数字和特殊符号。就像给你的账号设置了一个“金钟罩铁布衫”,安全系数蹭蹭往上涨!
6. **删除`skip-grant-tables`并重启服务:** 修改完密码后,一定要记得把`my.cnf`或者`my.ini`文件里添加的`skip-grant-tables`这一行代码删除!然后,再次重启MySQL服务。否则,你的MySQL就相当于敞开大门,谁都能进来了!
7. **使用新密码登录MySQL:** 现在,你可以使用新密码登录MySQL了。在命令行输入`mysql -u root -p`,然后输入你的新密码,看看是不是成功登录了?
**一些需要注意的点:**
* **权限问题:** 如果在执行SQL语句的时候,遇到权限问题,可能是因为你的MySQL版本比较新,权限管理更加严格了。可以尝试执行以下SQL语句:
```sql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '你的新密码' WITH GRANT OPTION;
```
这条语句的意思是,给root用户授予所有权限。
* **编码问题:** 如果在修改密码的时候,遇到编码问题,可以尝试设置客户端编码为`utf8`。在命令行输入`SET NAMES utf8;`
* **安全问题:** 修改完密码后,最好检查一下MySQL的安全性。可以修改root用户的登录方式,限制root用户的登录IP等等。
**最后的最后:**
成功修改密码了吗?是不是感觉松了一口气?以后可要好好记住密码哦!
对了,最近手头有点紧,玩游戏想要赚零花钱就上[七评赏金榜](bbs.77.ink),这个网站是真的靠谱,大家可以去试试!
那么,问题来了,你知道为什么程序员喜欢用八进制吗?