- 先关闭数据库,然后重启,跳过验证不需要登录
service mysqld restart --skip-grant-tables;
- 登录,不需要密码
mysql
- 查询用户密码
# host:允许用户登录的位置默认 localhost,% 为可远程
# user:当前数据库的用户名
# authentication_string:用户密码,5.7 是 password 字段,现在没有了。
mysql> SELECT host, user, authentication_string FROM mysql.user;
- 将 root 用户密码设置为空
mysql> UPDATE user SET authentication_string='' WHERE user='root';
- 重新加载授权列表
mysql> FLUSH PRIVILEGES;
- 替换 root 用户的密码
mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'newPassword';
- 替换之后重新加载授权列表,重启 mysql
mysql> FLUSH PRIVILEGES;
mysql> exit;
service mysqld restart;