23

我知道如何在 ubuntu 上跳过这个问题,但我如何在 MAC OS 上做到这一点?

如何在 MAC 上设置 mysql 的密码?

1) 不起作用

mysqladmin -u root password NEWPASSWORD

2)不起作用

mysqld --skip-grant-tables --skip-networking &

3)这有效:

mysql root密码忘记了

4

12 回答 12

59

您可以在 Mac (El Capitan) 上执行以下操作

  1. 打开终端窗口,如果 mysql 已经在运行,请使用以下命令停止它。

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

    您还可以检查 System Preferences > MySQL 以查看它是否正在运行

  2. 使用以下命令启动 MySQL:

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

  3. 打开一个新的终端窗口/选项卡:

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

    这应该打开“mysql”提示。执行以下命令:

    $mysql> UPDATE user SET authentication_string=PASSWORD("my_password") WHERE User='root';

    故障排除提示:

    A) 5.7 之前的 MySql 版本的命令是:

    $mysql> UPDATE user SET Password=PASSWORD('my_password') where USER='root';

    B) 如果您看到ERROR 1046 (3D000): No database selected,请先运行此命令:

    use mysql;

    C) 如果您看到未知的“密码”字段错误,请运行以下命令:

    UPDATE USER SET AUTHENTICATION_STRING=password('NewPassword') WHERE user='root'; $mysql> FLUSH PRIVILEGES; $mysql> EXIT

  4. 停止 MySql 服务器

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

  5. 通过 System Preferences > MySql 或使用命令重新启动 MySQL。

于 2016-03-27T20:06:22.383 回答
22

的解决方案

UPDATE user SET authentication_string=PASSWORD("my_password") WHERE User='root';

不是为我工作,但我做到了

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';

并且能够继续进行。我正在使用 8.0.12 版。

于 2018-08-17T14:53:10.173 回答
7

您可以在 iMac 或 Mac (High Sierra) 上执行以下操作

打开终端窗口,如果 mysql 已经在运行,则停止它。您还可以检查此系统偏好设置 > MySQL > 查看它是否正在运行。

使用此命令启动 MySQL 以跳过主表

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

打开一个新的终端窗口/选项卡..

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

这应该打开“mysql”提示。执行以下命令:

A) MySQL 5.6 及以下

UPDATE mysql.user SET password=PASSWORD('NewPassord') WHERE user='root';

- 或者 -

B) MySQL 5.7+

UPDATE mysql.user SET authentication_string=PASSWORD('NewPassord') WHERE user='root';

通过 System Preferences > MySql 或使用命令重新启动 MySQL。

于 2018-01-20T16:58:41.710 回答
6

MACOS 10.14 莫哈韦 || MYSQL 8.0.15

这在我的 Mac 上不起作用:

sudo /usr/local/mysql/support-files/mysql.server 停止

但这实际上有效:

sudo /usr/local/mysql-8.0.15-macos10.14-x86_64/support-files/mysql.server stop

安装文件夹可能因用户而异,请注意!

或者只是检查 > 系统首选项 > MySQL > 如果服务器正在运行,请停止它。

然后,

使用以下命令启动 MySQL:

sudo /usr/local/mysql-8.0.15-macos10.14-x86_64/bin/mysqld_safe --skip-grant-tables

打开一个新的终端窗口/选项卡:

sudo /usr/local/mysql-8.0.15-macos10.14-x86_64/bin/mysql -u root

这应该打开“mysql”提示。执行以下命令(*scroll right if you don't full query):

UPDATE mysql.user SET authentication_string='your-password-goes-here' WHERE user='root' and host='localhost';

请记住

mysql-8.0.15-macos10.14-x86_64

(在我的情况下)是本地机器上的安装文件夹,由于操作系统版本、mysql 版本、使用的安装方法等,它可能与我的不同,也可能不同。

于 2019-06-15T14:17:54.157 回答
6

MariaDB 版本的非常简单的修复:10.4.6-MariaDMojavemacOS上

我已经浏览了所有答案。其中一些对我有用,而另一些则不是。我找到了一种在 macOS 或 OSX 上解决此问题的简单方法。以下是步骤:

先决条件:

应该安装自制软件。使用以下链接在 macOS 或 OSX 上安装 homebrew。

安装 mariadb:

  1. brew install mariadb
  2. 启动 MySQL 服务器:mysql.server start或运行brew services start mariadb 以在登录计算机时启动 MySQL 服务器。
  3. 进入 MySQL 实例sudo mysql -u root

注意:mysql -u root将抛出错误ERROR 1698 (28000): Access denied for user 'root'@'localhost',因此请用于sudo运行此命令。

  1. 现在要更改root用户的密码,我尝试了以下命令:

    1. UPDATE user SET password=PASSWORD("mypassword") WHERE User='root';
      • 这引发了一个错误:ERROR 1348 (HY000): Column 'Password' is not updatable
    2. UPDATE user SET authentication_string=PASSWORD("mypassword") WHERE User='root';
      • 这引发了一个错误:ERROR 1348 (HY000): Column 'authentication_string' is not updatable
  2. 但是以下命令有效

    • ALTER USER 'root'@'localhost' IDENTIFIED BY 'mypassword';
      • 回应是:Query OK, 0 rows affected (0.009 sec)

因此,对于10.4.6-MariaD通过 brew 安装的版本,这对我来说是一个简单的修复。希望这对你也有帮助。

于 2019-08-13T15:31:54.920 回答
3
sudo mysql -uroot
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
flush privileges;
Ctrl+D
mysql -uroot -pnew_password  # will work now

注意sudo第一行的。

于 2019-07-14T18:49:39.993 回答
3

对于 MySQL 5.7,我必须使用:

更新用户 SET authentication_string = PASSWORD('YourNewPassword'), password_expired = 'N' WHERE User = 'root';

于 2017-10-22T15:46:03.930 回答
2

我曾经尝试过所有解决方案,但没有任何效果。终于突然间我找到了解决方案!我使用 10.5.8-MariaDB Homebrew。

    USE mysql;
    SELECT user, authentication_string, plugin, host FROM mysql.user;

由于某些原因 authentication_string 无效,这是我们需要修复的

然后只需运行以下命令:

ALTER USER 'root'@'localhost' IDENTIFIED BY '';
于 2020-11-29T22:09:54.537 回答
0

我很难在 MAC Sierra、10.12.6、MySql 版本 5.7.17 上解决这个问题

以下步骤对我有用:

打开终端窗口,如果 mysql 已经在运行,请使用以下命令停止它。

sudo /usr/local/mysql/support-files/mysql.server 停止

使用以下命令启动 MySQL:

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

打开一个新的终端窗口/选项卡:

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

这将打开“mysql”提示。在mysql提示符下一一执行以下命令:

use mysql;

UPDATE user SET authentication_string = PASSWORD('my_new_password'), password_expired = 'N' WHERE User = 'root';

FLUSH PRIVILEGES;

EXIT

现在先停止 MySql 服务器,然后使用以下命令启动它

sudo /usr/local/mysql/support-files/mysql.server 停止

sudo /usr/local/mysql/support-files/mysql.server 开始

希望这可以解决您的问题。

于 2018-09-03T08:02:35.187 回答
0

我正在使用 Mac,我的解决方案与上面的有点不同

  1. cd到我安装mysql的文件夹。就我而言,这是cd /opt/homebrew/Cellar/mysql/8.0.27/bin因为我曾经brew安装过mysql

  2. 使用mysqld_safe将无济于事。试试这个语法mysqld --skip-grant-tables & 在此处输入图像描述

  3. 类型mysql

  4. 类型FLUSH PRIVILEGES;

  5. 类型ALTER USER 'root'@'localhost' IDENTIFIED BY 'password you want';

如果你看到ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误。只需输入大写字母+数字+特殊字符的密码

于 2021-11-12T04:07:11.803 回答
0

我发现在 Mac Mojave 中,至少如果你直接从下载 MySQL 社区包而不是通过 brew 进行安装,显然你仍然需要在停止后通过系统偏好设置屏幕插入你为“root”选择的密码,重新启动安全模式(--skip-grant-tables)和刷新权限。然后您可以在 phpMyAdmin 中以 root 身份登录。这是在尝试了至少 20 组不同的建议/说明来解决这个问题之后,包括本页上面列出的那些。希望它可以帮助某人!

于 2019-06-07T21:07:54.523 回答
0

Mac OSX 12.1(蒙特雷)

在 x86_64 上安装了 Oracle MySql: mysql Ver 8.0.28 for macos11 (MySQL Community Server - GPL)

安装后使用软件包安装,您设置的 root 密码不会保存在服务器内的mysql数据库中。我从上面尝试了一些更新用户命令,最终解决了这个问题的是系统偏好设置 > MySql > 初始化数据库 > [再次设置密码]。

初始化数据库画面

停止数据库并重新启动能够与 root 用户创建会话。现在它正在工作,我有点想把它扔掉,只是为了头疼而改用 mariadb。

于 2022-01-22T00:23:11.680 回答