操作系统版本是 ubuntu 20.04;mysql 是 8.0.22。
简介
使用 --skip-grant-tables
选项启动 mysql 服务,以便不需要密码就可以登录到 mysql 命令行,并且获取到所有的权限。
修改 mysql 配置文件,增加 --skip-grant-tables
选项
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
在文件末尾添加:
--skip-grant-tables
登录 mysql
重启 mysql 服务后,使用 mysql -uroot
命令直接登录 mysql 命令行。
重新加载授权表
因为使用 --skip-grant-tables
会导致账号管理被禁用,需要使用 flush
命令重新加载权限表,以此开启账号管理功能。
flush privileges;
修改 root 密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
重启 mysql 服务
修改 mysql 配置文件,去掉 --skip-grant-tables
选项,然后重启 mysql。
接着使用新定义的密码登录mysql 的 root 账号即可。
参考文章: