首先打开/etc/my.cnf(默认安装情况下为此路径)
vim /etc/my.cnf
如果无法找到该文件,可以试着使用以下指令
find / -name my.cnf
在[mysqld]下方(注意一定是要在此文本段内 不能放在下一个[xxx]后) 单独添加一行skip-grant-tables,保存并退出
接下来重启mysqld服务
输入
service mysqld restart
此后输入mysql即可打开
mysql启动后首先输入flush privileges;
若是不执行此步 接下来修改密码的时候有可能会出现error1290的错误,提示你在跳过密码登录的设置下无法修改用户密码
然后正式开始修改密码
在mysql比较新的版本中
update user set password = password("newpassword") where user = "root";
可能会产生语法错误 原因在于新版本中password被改成了authentication_string
使用alter user ‘root’@‘localhost’ identified by 'yourpassword'或者update user set authentication_string=password("yourpasswd") where user="root"; 即可完成修改
也可使用以下语句
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';
//或者ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';
//依照select user,host from user; 看到的情况而定
最后,重新打开my.cnf文件,去掉之前的skip设置,再次重启mysqld服务即可完成