最近在看项目,搭建本地环境时候,忘记mysql的密码,怎么修改密码,网上找了半天,终于配合着几个帖子搞定了,说下流程:
情景:在mysql官网直接下载dmg文件进行安装,忘记密码(mac os系统)
打开终端:
1.关闭mysql服务器
sudo /usr/local/mysql/support-files/mysql.server stop
这一步需要输入用户管理员密码
2.进入目录
cd /usr/local/mysql/bin
这个是进入你mysql安装目录的bin文件
3.获取权限
sudo su
4.重启服务器
./mysqld_safe --skip-grant-tables &
如图:
5.control + D退出编辑
6.配置短命令
alias mysql=/usr/local/mysql/bin/mysql
7.进入mysql命令模式
mysql
5,6,7步如图:
8.进入mysql数据库
use mysql
9.获取更改权限
flush privileges;
如图:
10.重置密码
set password for 'root'@'localhost'=password('123456');
这里可能出现这个报错:ERROR 1133 (42000): Can't find any matching row in the user table
原因是:主要原因是修改密码的条件不否,root的user表里的host不是 “
localhost”
查看方法如下:
use mysql;
select Host,User from user;
如图:
将set password for 'root'@'localhost'=password('MyNewPass4!');
代码中的localhost
修改%
,与数据库Host
字段值一致,注意括号里面 123456是你自己修改的密码。
set password for 'root'@'%'=password('123456');
情况二:如果你经常使用home-brew安装来安装软件,只需要将上面步骤中的路径进行更改即可,mysql默认安装目在/usr/local/Cellar/mysql/5.7.16,只需将上面的1、2、6步骤/usr/local/mysql更改为/usr/local/Cellar/mysql/5.7.16即可
情况三:这种情况就属于比较坑的情况了,下载过mysql之后,隔了好长时间忘记了这回事情,然后又下载了一个,发现先下载的数据库直接提示输入密码。然后按照情况一或情况二输入命令无法修改成功。之后按照网上介绍的方法修改my.cnf(现在改为了my-default.cnf)也没有用。如果不幸遇到这种情况,请按照以下步骤进行操作
1.卸载mysql,重新安装
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/var/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
vim /etc/hostconfig and removed the line MYSQLCOM=-YES-rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /var/db/receipts/com.mysql.*
参考帖子:
https://blog.csdn.net/a787188834/article/details/80321797
https://www.cnblogs.com/chuanqi1995/p/11325400.html