步骤
1.修改my.cnf文件并重启服务
my.cnf配置文件加上skip-grant-tables
参数,可不用密码登录
[mysqld]
...
skip-grant-tables
# 如果是线上数据库,要把监听端口改为本地,防止其他人链接上服务器
bind-address=127.0.0.1
如果是源码安装,没有my.cnf文件,在安装目录touch一个
2.重新设置密码
- 5.6及以下版本
[root@localhost ~]# mysql -uroot -e "update mysql.user set password=password('123456') where user='root' and host='localhost'"
- 5.7版本
[root@localhost ~]# mysql -uroot -e "update mysql.user set authentication_string=password('123456') where user='root' and host='localhost'"
3.修改my.cnf文件并重启服务
把skip-grant-tables
参数注释掉重启服务
[mysqld]
...
# skip-grant-tables
# 如果是线上数据库,要把监听端口改为本地,防止其他人链接上服务器
# bind-address=127.0.0.1