重置mysql密码

工作所在的团队在简单的调整后,我负责的工作也产生了一些变化。就在昨天接到一个新需求,大概是要用同事的nodeJs应用快速搭建一个玩法配置平台。其中涉及到数据库的存储等问题,第一次真正用心处理数据库的问题,从昨天下午开始搞mysql,一直都提示密码不正确,下面简单记录下我处理的过程:

先来看看我遇到的报错

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
或者
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

尝试了几次发现,只要不输入密码,报的错就是第一种,只要输入密码,报的错就是第二种;但是按照安装mysql时给的临时密码,提示也是第二种错,于是就走在了改密码的路上。。。

######解决方法

  • 先停止 mysql server

    通常是在 ‘系统偏好设置’ > MySQL > ‘Stop MySQL Server’

  • 打开终端,以安全模式启动MySQ,输入:

    sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
    

    这样我们就可以直接用root登录,无需密码

  • 然后打开另一个新终端,输入:

    sudo /usr/local/mysql/bin/mysql -u root
    

    输入 Mac 系统用户密码后,直接敲回车进入 mysql 终端,输入:

    UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root';
    FLUSH PRIVILEGES;
    
  • 输入 \q 退出 mysql 终端

  • 重启MySQL

  • 用新密码连接