在OS X上重置mysql服务器根密码

在OS X上重置mysql服务器根密码,mysql,macos,Mysql,Macos,首先,我知道有几个线程,但我已经尝试了这么多的解决方案,我无法得到任何工作 我没有任何mysql服务器和终端的经验 我下载了mysql服务器5.7.19 以下是redtek的回答: 我从系统设置中打开mysql,单击停止服务器。然后,我打开终端并写入 sudo mysqld_safe --skip-grant-tables 我问我的密码(我想当我启动电脑时密码是一样的)。我收到一条未找到命令的消息 MacBook-Pro:~ XXXXXX$ sudo mysqld_safe --skip-gr

首先,我知道有几个线程,但我已经尝试了这么多的解决方案,我无法得到任何工作

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

我下载了mysql服务器5.7.19

以下是redtek的回答:

我从系统设置中打开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服务

sudo /usr/local/mysql/support-files/mysql.server stop
然后你需要在安全模式下启动它

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
第二:让我们打开另一个shell/terminal窗口,不用密码登录

  mysql -u root  
UPDATE mysql.user SET Password=PASSWORD('my-new-password') WHERE User='root';  
FLUSH PRIVILEGES;  
\q
因为在MySQL 5.7中,MySQL.user表中的密码字段被删除,现在字段名是“authentication\u 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

第一步是停止MySQL服务

sudo /usr/local/mysql/support-files/mysql.server stop
然后你需要在安全模式下启动它

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
第二:让我们打开另一个shell/terminal窗口,不用密码登录

  mysql -u root  
UPDATE mysql.user SET Password=PASSWORD('my-new-password') WHERE User='root';  
FLUSH PRIVILEGES;  
\q
因为在MySQL 5.7中,MySQL.user表中的密码字段被删除,现在字段名是“authentication\u 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

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

  • 您可以添加到路径
  • 或者您可以使用完整路径/usr/local/mysql/bin/mysqld\u-safe

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

  • 您可以添加到路径
  • 或者您可以使用完整路径/usr/local/mysql/bin/mysqld\u-safe

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

    遵循下面的步骤,它也可以帮助您进行分类

    为了安全地确保过程: -在MySQL(spotlight-MySQL)的系统首选项中关闭“启动时自动启动MySQL服务器”的勾选

    • 打开终端并键入
      sudo/usr/local/mysql/support files/mysql.server start
      -PS:这是为了确保它的在线,下一个进程在我身上中断的时间
    • 现在关闭MySQL服务:
      sudo/usr/local/MySQL/support files/MySQL.server stop
    • 键入
      sudo mysqld\u safe--跳过授权表
      现在,这将绕过MySQL的安全性—对于操作来说不安全,也不是一个永久性的解决方案,它不允许您始终使用MySQL。 目前,正如你所看到的,它正在一个过程中。。。这将允许我们执行以下步骤。在剩余的过程中保持终端的此选项卡打开
    现在Cmd+N(新终端窗口),在新终端中: -
    sudo/usr/local/mysql/support files/mysql.server start
    -
    更新用户集身份验证\u string=password('jj'),其中user='root'
    在旧版本上,这将是
    updateuser set password=password(“jj”),其中user='root'
    -
    FLUSH特权//这是必要的(更新磁盘而不是缓存),以确保下次关闭mysql并返回时,它在安装时保持可访问性。
    -
    \q
    退出

    关闭所有终端,重新启动计算机,并确保一切正常(当然,这需要重新启动,打开终端,mysql,u root,p,按上面的步骤输入密码)。 在我的回答中:
    jj
    是否设置了密码

    这是一个很酷的东西,它提供了全新的常识(在我说密码不是字段或类似的东西之后,它立即对我起了作用,在这个新的终端中,
    updateuser set authentication\u string=Password('jj'))where user='root'
    ,因此,如果您有相同的代码,请按照以下步骤进行操作-在>mysql本身中您所在的位置..): -
    使用mysql
    -
    显示表格
    -
    描述用户
    
    然后从上面的
    更新用户集身份验证\u string=password('jj')的角度继续,其中user='root'

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

    遵循下面的步骤,它也可以帮助您进行分类

    为了安全地确保过程: -在MySQL(spotlight-MySQL)的系统首选项中关闭“启动时自动启动MySQL服务器”的勾选

    • 打开终端并键入
      sudo/usr/local/mysql/support files/mysql.server start
      -PS:这是为了确保它的在线,下一个进程在我身上中断的时间
    • 现在关闭MySQL服务:
      sudo/usr/local/MySQL/support files/MySQL.server stop
    • 键入
      sudo mysqld\u safe--跳过授权表
      现在,这将绕过MySQL的安全性—对于操作来说不安全,也不是一个永久性的解决方案,它不允许您始终使用MySQL。 目前,正如你所看到的,它正在一个过程中。。。这将允许我们执行以下步骤。在剩余的过程中保持终端的此选项卡打开
    现在Cmd+N(新终端窗口),在新终端中: -
    sudo/usr/local/mysql/support files/mysql.server start
    -
    更新用户集身份验证\u string=password('jj'),其中user='root'
    在旧版本上,这将是
    updateuser set password=password(“jj”),其中user='root'
    -
    FLUSH特权//这是必要的(更新磁盘而不是缓存),以确保下次关闭mysql并返回时,它在安装时保持可访问性。
    -
    \q
    退出

    关闭所有终端,重新启动计算机,
    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