在服务器部署项目安装mysql后,忘记了root密码,一直提示错误:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
可以通过重置密码解决
首先跳过mysql的密码认证过程:
# vim /etc/my.cnf(注:windows下修改的是my.ini)
找不到my文件可以通过 whereis my 查找
在文档内找到[mysqld]文本段:
在vim命令模式下输入/mysqld可简单定位到mysqld字段:
进入编辑模式在[mysqld]下任意一行添加“skip-grant-tables”用来跳过密码验证,如图:
esc回到命令模式,保存并退出:
:wq
接下来,重启mysql
/etc/init.d/mysql restart(有些用户可能需要使用/etc/init.d/mysqld restart)
重启之后直接输入 mysql 即可进入mysql
接着修改root的密码:
mysql> use mysql;
在设置新密码时需注意:
在mysql5.7以下的版本如下:
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root' and host='127.0.0.1' or host='localhost';//把空的用户密码都修改成非空的密码就行了。
在mysql5.7版本及以上如下:
mysql>update mysql.user set authentication_string=password('newpassword') where user='root' and host='127.0.0.1' or host='localhost';
mysql> flush privileges;
mysql> quit
最后编辑my.cnf,去掉刚才添加的内容,然后重启MySQL。