一,[root@localhost ~]# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
一般这个错误是由密码错误引起,解决的办法自然就是重置密码。
假设使用的是root账户。
解决办法:
1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:
#vim /etc/my.cnf(注:windows下修改的是my.ini)
在文档内搜索mysqld定位到[mysqld]文本段:
/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)
在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程
注:skip-grant-tables这个是配置参数,可以放在mysql配置文件里面修改,然后把这个配置参数放到/etc/my.cnf文件里面。
2.接下来我们需要重启MySQL:service sqld restart (或者/etc/init.d/mysqld restart)
3,输入mysql就可以进入数据库,用sql来修改root的密码
mysql> use mysql;
以前的版本我们改:
mysql> update user set password=password("你的新密码") where user="root";
但是在5.7版本中不存在password字段,所有我们要用以下修改进行重置密码
mysql>update user set authentication_string=password('123456') where user='root';
mysql> flush privileges;
mysql> quit
到这里初始化root账户就已经重置成新的密码了。
注:这个新密码是一个临时密码,操作数据库的时候需要再重新设置一个密码:alter user user() identified by "root";
5.编辑my.cnf,去掉刚才添加的内容skip-grant-tables,然后重启MySQL。
输入:# mysql -uroot -p
二,mysql执行任何命令,都提示:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
直接在mysql中执行
alter user user() identified by "root";