转载自百度知道 链接
#1.停止mysql数据库 /etc/init.d/mysqld stop #2.执行如下命令 mysqld_safe --user=mysql --skip-grant-tables --skip-networking & #3.使用root登录mysql数据库 mysql -u root mysql #4.更新root密码 mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root'; #最新版MySQL请采用如下SQL: mysql> UPDATE user SET authentication_string=PASSWORD('newpassword') where USER='root'; #5.刷新权限 mysql> FLUSH PRIVILEGES; #6.退出mysql mysql> quit #7.重启mysql /etc/init.d/mysqld restart #8.使用root用户重新登录mysql mysql -uroot -p Enter password: <输入新设的密码newpassword>
2017年12月27日 更新:
最近又碰到了这个问题,在 CentOS 7,但是没有 mysqld_safe 这个命令,于是在网上又找到了一个东西,“mysql会为root生成一个默认密码,并且存储在log文件里。通过 sudo grep 'temporary password' /var/log/mysqld.log 可以看到这个密码”。