【问题标题】:Resetting mysql server root password on OS X在 OS X 上重置 mysql 服务器 root 密码
【发布时间】:2018-01-21 11:06:50
【问题描述】:

首先,我知道有几个线程,但是我尝试了这么多解决方案,但我什么都做不了。

我对 mysql 服务器和终端没有任何经验。

我下载了mysql服务器5.7.19

根据 redtek 的回答,这里:Setting the MySQL root user password on OS X

我从系统设置打开mysql,点击停止服务器。然后我打开终端写

sudo mysqld_safe --skip-grant-tables

我询问我的密码(我假设我启动计算机时密码相同)。我收到一条消息,提示找不到命令。

MacBook-Pro:~ XXXXXX$ sudo mysqld_safe --skip-grant-tables
Password:
sudo: mysqld_safe: command not found
MacBook-Pro:~ XXXXXX$ 

更新:当我运行以下解决方案时,打开新窗口后出现以下错误:

Last login: Sun Aug 13 16:51:49 on ttys002


MacBook-Pro:~ XXXXX$   mysql -u root  


-bash: mysql: command not found


MacBook-Pro:~ XXXXX$ UPDATE mysql.user SET Password=PASSWORD('my-new-password') WHERE User='root';  


-bash: syntax error near unexpected token `('


MacBook-Pro:~ XXXXX$ FLUSH PRIVILEGES;  


-bash: FLUSH: command not found


MacBook-Pro:~ XXXXX$ \q

【问题讨论】:

    标签: mysql macos


    【解决方案1】:

    第一步是停止 MySQL 服务。

    sudo /usr/local/mysql/support-files/mysql.server stop
    

    那你需要在安全模式下启动它

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

    其次:让我们打开另一个shell/终端窗口,无需密码登录

      mysql -u root  
    UPDATE mysql.user SET Password=PASSWORD('my-new-password') WHERE User='root';  
    FLUSH PRIVILEGES;  
    \q
    

    因为在 MySQL 5.7 中,mysql.user 表中的密码字段被删除,现在字段名称为 'authentication_string'。

     mysql -u root  
    UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE User='root';  
    FLUSH PRIVILEGES;  
    \q
    

    现在又需要启动 MySQL 服务器了

    sudo /usr/local/mysql/support-files/mysql.server start
    

    【讨论】:

    • 知道为什么它对我不起作用吗?这是在我打开一个新的终端窗口之后: 最后登录:Sun Aug 13 16:51:49 on ttys002 MacBook-Pro:~ XXXXX$ mysql -u root -bash: mysql: command not found MacBook-Pro:~ XXXXX$ UPDATE mysql.user SET Password=PASSWORD('my-new-password') WHERE User='root'; -bash: 意外标记 `(' 附近的语法错误 MacBook-Pro:~ XXXXX$ FLUSH PRIVILEGES; -bash: FLUSH: command not found MacBook-Pro:~ XXXXX$ \q
    • hmmm..我想你尝试在这个页面中使用这个命令dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html我搜索了你..尝试更新你的 mysql 服务器。我希望你赢
    • @Üneys mysql -u root 命令给了我错误用户'root'@'localhost'的访问被拒绝(使用密码:否)
    【解决方案2】:

    找不到该命令,因为 MySQL 安装文件夹 ( /usr/local/mysql/ ) 未包含在系统变量 PATH 中。

    1. 您可以添加到 PATH
    2. 或者您可以使用完整路径 /usr/local/mysql/bin/mysqld_safe

    【讨论】:

    • 你能帮我澄清一下吗?因为我真的不懂
    【解决方案3】:

    我花了一段时间才解决这个问题,考虑到大多数解决方案都是针对低于 MySQL 5.7 的版本

    按照下面的操作,它也可以帮助您进行排序。

    为了安全地确保过程: - 在 MySQL 的系统偏好设置中关闭“启动时自动启动 MySQL 服务器”的勾选(聚焦 - mysql)

    • 打开终端并输入sudo /usr/local/mysql/support-files/mysql.server start -PS:这是为了确保它的内联,有时是下一个进程在我身上中断。
    • 现在关闭 MySQL 服务:sudo /usr/local/mysql/support-files/mysql.server stop
    • 输入sudo mysqld_safe --skip-grant-tables 现在这将绕过 MySQL 的安全性 - 对操作不安全,也不是始终允许您使用 MySQL 的永久解决方案。 目前,如您所见,它正在处理中……这将使我们能够执行以下步骤。在剩下的过程中,让终端的这个标签保持打开状态!!

    现在 Cmd+N(新终端窗口),在新终端中: - sudo /usr/local/mysql/support-files/mysql.server start - update user set authentication_string=password(‘jj’) where user='root' 这在旧版本上将是update user set password=PASSWORD(“jj”) where user='root’; - FLUSH PRIVILEGES; //这是必不可少的(更新磁盘而不是缓存),以确保下次关闭 mysql 并取回它在您设置时保持可访问性。 - \qquit

    全部关闭 - 所有终端,重新启动您的计算机,并确保一切正常(当然这需要 - 重新启动 - 打开终端 - mysql -u root -p(输入) - 使用您在上述步骤中提供的密码进行响应)。 在我的回答中:jj 是密码设置

    Cool-Stuff 用于相当新的一般知识(在说密码不是字段或类似的东西后,这不知何故立即对我有用,在 update user set authentication_string=password(‘jj’) where user='root' 的这个新终端中进行,所以如果你有相同的,去在下面的步骤中 - 在 >mysql 本身你所在的位置..): - use mysql; - show tables; - describe user; 然后从update user set authentication_string=password(‘jj’) where user='root'点继续上述步骤

    【讨论】:

      【解决方案4】:

      停止 MySQL 服务器。

      sudo /usr/local/mysql/support-files/mysql.server stop
      

      使用 --skip-grant-tables 选项重新启动它。

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

      打开另一个终端以使用 mysql 客户端连接到 MySQL 服务器。

       cd /usr/local/mysql/bin  
       mysql
      

      告诉服务器重新加载授权表,以便帐户管理语句起作用。

      FLUSH PRIVILEGES;
      

      现在重置root用户的密码

      MySQL 5.7.6 及更高版本:

      ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
      

      MySQL 5.7.5 及更早版本:

      SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
      

      停止服务器并正常重启

      sudo /usr/local/mysql/support-files/mysql.server stop
      sudo /usr/local/mysql/support-files/mysql.server start
      

      【讨论】:

        猜你喜欢
        • 2011-09-22
        • 2016-03-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-08
        • 2018-06-09
        • 2014-01-13
        • 1970-01-01
        相关资源
        最近更新 更多