教你在Mac下如何快速重置mysql root密码

哎哟,兄弟,我之前在Mac上重置MySQL 5 .7 .9 的root密码那可真是踩了不少坑啊。
记得那会儿,我是在2 01 9 年,在一家互联网公司做运维,那会儿公司服务器上的MySQL密码被不小心给忘了,领导急得团团转,我就硬着头皮上了。

第一步,我先把MySQL服务给停了。
我是在系统偏好设置里找到MySQL面板,然后点那个“StopMySQLServer”的按钮。
不过,后来我发现,有时候图形界面操作不顺畅,我就直接在终端里输入了sudo /usr/local/mysql/support-files/mysql.server stop来强制停止服务。
这步很重要,得确保服务完全停了,不然后面操作可能会遇到权限问题。

第二步,我就得用安全模式启动MySQL了。
我在终端里输入了sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables这个命令。
这个命令挺关键,它能让MySQL跳过权限验证。
不过,这期间终端窗口会一直运行,我得按Ctrl+C才能退出。

第三步,我就得修改root密码了。
我在另一个终端窗口里,先执行了sudo /usr/local/mysql/bin/mysql -uroot命令登录MySQL。
然后,我更新了密码字段,记得是用PASSWORD('你的新密码'),因为我们是用的MySQL 5 .7 .9 版本。
更新完密码后,我还执行了FLUSH PRIVILEGES命令来刷新权限。
最后,我退出了MySQL。

这步我踩了个小坑,就是密码设置得挺复杂的,得包含字母、数字和特殊字符,长度还得不少于8 位。
我还试过用SETPASSWORDFOR 'root'@'localhost'='你的新密码'来替代PASSWORD()函数,因为提示PASSWORD()函数未定义。

第四步,我就重启了MySQL服务。
我在系统偏好设置里点“StartMySQLServer”按钮,或者在终端里输入sudo /usr/local/mysql/support-files/mysql.server start。
重启后,我用新密码登录测试了一下,果然成功了。

注意事项嘛,我建议操作前先备份一下mysql.user表的数据,防止误操作导致权限丢失。
而且,如果用MySQL 8 .0+版本的话,PASSWORD()函数可能已经被移除了,就得直接用SETPASSWORD语句了。
频繁修改密码可能会触发安全策略限制,所以建议通过配置文件或密钥管理工具来统一管理密码。

哎,说起来都是泪,不过这次操作成功后,领导对我刮目相看,也算是对我技术的一次肯定吧。

mysql 5.7 怎么修改默认密码,随机密码

当时我装完 mysql 2 02 2 年那个版本,就在 Windows 上面装的。
本来以为密码就是装的时候设置的,结果一用 mysql-uroot-p 登陆,根本不对啊。
提示要输入密码,但那个密码不是装的时候设定的,也不是我记着的随便那个密码。

我一开始挺懵的,想都没想直接又装了一遍,以为是不是装错了。
结果装完再看,哎?data 文件夹呢?我就去 C:\Program Files\MySQL\MySQL Server 5 .7 里面找,你看,这个目录下根本就没有 data 文件夹。
我当时就愣住了,心想是不是装得太乱七八糟了。

我又上网查了查,搞了半天,原来是装完之后,MySQL 自己自动创建的。
我就跑到那个 server 路径下,果然看到了 data 文件夹。
我就随便找一个那个后缀是 .err 的文件,打开它。
然后用 Ctrl+F 找 password,你找这个就行。
找到了,里面写着 localhost: 后面跟的一长串字符,就是那个随机生成的密码。
我就把这个密码复制下来。

然后我回到 cmd 界面,就是那个黑色的窗口,回到刚才要输入密码的这一步,把复制的密码粘贴进去,回车。
嘿,居然进去了!我就成功连接上了。

接着我就想,这随机密码太麻烦了,得改改。
结果发现,在新版本的 MySQL,也就是 2 02 2 年那个版本,改密码的方法也变了。
以前那种在未登录状态下,用一长串命令来改密码的方法,现在行不通了。

我就用 sql 语句来改。
登录之后,在 mysql> 后面输入这个命令:ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; 把 new_password 替换成你想设的新密码。
我试了一下,成功了。
就这样,密码改好了。

mysql怎么重置密码

说白了,重置MySQL密码主要分为两种情况:记得旧密码直接修改和忘记密码需要重置。
其实很简单,下面详细拆解这两种情况。

先说最重要的,记得原密码时,你需要在命令行输入mysql -u root -p登录后,切换到系统数据库use mysql;,然后执行update user set authentication_string=PASSWORD('新密码') where user='root';。
注意,MySQL5 .7 及以上版本要用authentication_string字段,别用旧版的password字段。

后来发现不对,很多人忽略了一个细节,那就是修改密码后要刷新权限,执行FLUSH PRIVILEGES;。
还有,如果你是用Windows系统,可能需要重启MySQL服务。

至于忘记密码的情况,你先得停止MySQL服务,执行net stop mysql。
然后跳过权限验证启动MySQL,用mysqld --skip-grant-tables。
这时候,另开一个窗口登录,执行mysql -u root,切换到系统数据库,修改密码的命令和之前一样,最后刷新权限。

等等,还有个事,MySQL8 .0+版本推荐使用ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';来替代直接修改user表。
而且,操作前备份数据库是个好习惯,避免误操作。

这个点很多人没注意,如果你使用--skip-grant-tables后还是无法登录,可能是其他安全插件(比如caching_sha2 _password)在作怪,这时候需要额外配置。

最后,我觉得值得试试在操作前先了解一下你的MySQL版本,以及系统环境,这样可以更顺利地完成密码重置。

介绍手动配置phpmyadmin和mysql密码的两种方法

直接用: 1 . MySQL命令行改密码:mysql -uroot -p,输入旧密码,use mysql;,update users set password=password('新密码') where user='root';,flush privileges;,再退出。
2 . phpmMyAdmin改密码:浏览器登录phpMyAdmin,选mysql数据库,编辑root用户密码,用PASSWORD('新密码')加密,保存后同步config.inc.php。
3 . 注意:MySQL 5 .7 +用ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';。
4 . 重启MySQL服务,确保安全。
5 . MySQL 8 .0+可能用authentication_string,具体看版本。
6 . phpmMyAdmin配置文件权限6 4 4 ,安全第一。

你自己掂量。