五一假期的一个惊喜: 自己电脑上的MySQL密码忘了!
没错,就是这么惊喜……
总不至于让我重装系统吧?还能咋地啊?
Ubuntu/Debian特解
在 Ubuntu 和 Debian 系统上,有一个debian-sys-maint
用户(你隐藏得好深……),Debian 类系统下一些系统脚本对 mysql 的操作是通过这个用户完成的。所以我们可以通过这个用户来修改 root 密码。
首先,获取此用户的密码。
sudo cat /etc/mysql/debian.cnf
我们可以看到
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = YOUR_PASSWORD_HERE
socket = /var/run/mysqld/mysqld.sock
楞着干啥?记下来啊!
之后,使用该用户进行登录
mysql -u debian-sys-maint -p
最后改密码。
其他系统通解
首先,将MySQL服务停止掉。
然后,使用sudo mysqld_safe --skip-grant-tables --skip-networking
在安全模式下启动服务。如果不想新开一个窗口的话,可以最后加一个&
让它在后台运行。
最后,使用mysql -uroot -p
,密码为空进行登录,改密码。
如果启动MySQL出现错误,提示某某文件不存在,需要再做下面的事情:
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
修改密码
set password for DBUSER@HOST = password('YOUR_PASSWORD_HERE');
或者
GRANT USAGE ON *.* TO DBUSER@HOST IDENTIFIED BY 'YOUR_PASSWORD_HERE';
将里面的DBUSER、HOST、YOUR_PASSWORD_HERE替换一下就好了。
最后
总结一下我为什么会忘了密码: 自己笔记本,开发环境,密码长度40位。
怪我喽?
发表回复