五一假期的一个惊喜: 自己电脑上的 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 [email protected] = password('YOUR_PASSWORD_HERE');
或者
GRANT USAGE ON *.* TO [email protected] IDENTIFIED BY 'YOUR_PASSWORD_HERE';
将里面的 DBUSER、HOST、YOUR_PASSWORD_HERE 替换一下就好了。
最后
总结一下我为什么会忘了密码: 自己笔记本,开发环境,密码长度 40 位。
怪我喽?
发表回复