思路:
- 修改配置文件,跳过密码验证,登录成功,修改密码,退出加上验证,测试连接。
- 停止mysql服务,修改配置文件
[root@localhost /]# service mysql stop #停止mysql服务
[root@localhost /]# vim /etc/my.cnf #修改配置文件
注:
如果找不到my.cnf,可以用 find ./ -name my.cnf 进行查找后修改
- 添加 skip-grant-tables,然后保存 :wq!
skip-grant-tables
:wq! #保存文件退出
- 启动mysql
[root@localhost /]# service mysqld start #启动Mysql服务
[root@localhost /]# mysql -u root #登录mysql
#切换到mysql数据库
mysql> use mysql;
#修改新密码
mysql> update mysql.user set authentication_string=password('新密码') where user='root';
#刷新权限
mysql> flush privileges;
#退出
mysql> exit;
注:
修改密码的时候出现ERROR 1064 (42000):开始复制的别人update语句,看没出什么区别,但还是报错;还一个set password for ‘root’@‘localhost’ =password(‘新密码’);也报这个错,百度说是引号编码格式的问题,没具体深究待定吧
- 返回修改my.cnf文件,将之前添加的“skip-grant-tables”删掉,或者 #隐藏掉,然后 :wq!
[root@localhost /]# vim /etc/my.cnf #修改配置文件
:wq! #修改后保存退出
[root@localhost /]# service mysqld restart #重新启动mysql服务
[root@localhost /]# mysql -uroot -p #登录,验证一下
Enter password: #输入密码
mysql> #登录成功