在redhat 6上面安装了mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz之后,运行mysql -uroot mysql会提示Access denied for user 'root'@'localhost' (using password: NO) ,造成这种的原因是在安装的时候默认初始化了一个密码,但是对于该密码我们并不知道是什么,因此会出现上面的错误,对于该类错误通常采取的做法是先跳过密码登录,然后修改密码。具体操作如下:
首先将现有的mysql进行终止,执行ps aux | grep mysql查看进行号,利用kill -9 进程号,将现在正在运行的mysql进程终止。
然后切到mysql的安装目录,我的安装目录是/usr/local/mysql,切到安装目录之后执行./bin/mysqld_safe --skip-grant-tables &。
最后执行mysql -u root mysql,进到mysql模式下,切到mysql数据库,use mysql,然后运行update user set authentication_string = PASSWORD('mysql@123') where user = 'root';再运行flush priviliges;至此密码重置成功,可以直接通过mysql -u root -p mysql@123 进入mysql了。