解决 MySQL 忘记密码及权限问题(Mac版)

当我们通过终端连接 MySQL 数据库时,我们会看到这样的错误信息:

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

或者

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

解决上面错误的方法之一就是重新设置我们的 MySQL 的 root 密码(亲测有效(⊙o⊙)哦!)。

  1. 关闭正在运行的 MySQL,如果 MySQL 没有运行可以跳过。
    (1)在终端使用命令行关

    /usr/local/mysql/bin/mysqladmin -u root -p shutdown
    

    使用该命令关闭 MySQL ,如果 MySQL 密码忘记了,只能通过系统偏好设置里面关闭了!
    (2)直接使用偏好设置关


    解决 MySQL 忘记密码及权限问题(Mac版)_第1张图片
    关闭MySQL.png

    如图点击 Stop MySQL Server 按钮关闭。

  2. 安全模式运行 MySQL
    进入 MySQL 的 bin 目录执行如下命令。

    $ cd /usr/local/mysql/bin
    $ sudo su  
    

    之后输入管理员密码会看到

    sh-3.2# 
    

    之后我们输入下面命令以安全模式运行 MySQL

    sh-3.2#./mysqld_safe --skip-grant-tables &
    

    执行完命令后,我们打开 Mac 的系统偏好设置,选择 MySQL ,我们会发现 MySQL 重新运行了,如图:


    解决 MySQL 忘记密码及权限问题(Mac版)_第2张图片
    再次运行.png

    回到终端点击 Command + N 重新打开一个终端,
    输入

    mysql -u -root
    

    这时候我们不需要密码就能进入 MySQL ,

    Your MySQL connection id is 57
    Server version: 5.7.10 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql>
    

    注意:这里有的时候会进不来,这个时候可以尝试重启mac电脑,具体原因我也不清楚。

  3. 修改 root 密码
    首先执行下面命令为了能够修改任意的密码

    mysql> FLUSH PRIVILEGES;
    

    之后执行修改密码的 SQL 语句,这里的 asdf1234 可以替换你自己想要修改的密码

    mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('asdf1234');
    

    最后刷新

    FLUSH PRIVILEGES;
    
  4. 退出安全模式
    使用 Control+D 推出 MySQL ,然后关闭安全模式数据库。
    关闭数据库命令:

    /usr/local/mysql/bin/mysqladmin -u root -p shutdown
    

    这里要输入你刚才设置的密码,OK了!
    到目前为止你就找回了你 MySQL 的密码啦!

  5. 验证登录
    正常启动 MySQL 数据库,使用命令

    /usr/local/mysql/share/mysql.server start
    

    输入刚才设置的密码 asdf1234
    如果上面的命令不执行,同理到系统偏好里开启 MySQL 服务器。

    最后执行终端命令

    $mysql -u root -p
    

    然后输入刚才设置的密码 asdf1234 我们就可以正常进入 MySQL 啦!

    参考文章:http://blog.csdn.net/u014410695/article/details/50630233

你可能感兴趣的:(解决 MySQL 忘记密码及权限问题(Mac版))