用户root访问被拒绝 - MAC OS上的mysql

Wor*_*ica 11 mysql macos

我知道怎么在ubuntu上跳过这个问题,但我怎么能在MAC OS上做呢?

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

1)不起作用

mysqladmin -u root password NEWPASSWORD
Run Code Online (Sandbox Code Playgroud)

2)不起作用

mysqld --skip-grant-tables --skip-networking &
Run Code Online (Sandbox Code Playgroud)

3)这有效:

mysql root密码忘记了

Sur*_*ala 38

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

  1. 打开一个终端窗口,使用下面的命令停止mysql已经运行.

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

    您还可以检查系统偏好设置> 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. 通过系统偏好设置> MySql或使用命令重启MySQL.

  • 我收到此错误:`ERROR 1064(42000):您的SQL语法有错误; 查看与您的MySQL服务器版本相对应的手册,以便在'('mypassword')附近使用正确的语法WHERE user ='root''在第1行.任何想法可能是什么问题? (6认同)
  • MySQL 5.7,密码字段被重命名为'authentication_string'.应该使用下面的命令:$ mysql> UPDATE user SET authentication_string = PASSWORD("my_password")WHERE User ='root'; (2认同)
  • 工作完美.我想知道为什么在开始时安装和启动数据库这么复杂.是否设计了一些新用户? (2认同)
  • @rraallvv 这不是语法问题。函数密码有问题。函数 [PASSWORD](https://dev.mysql.com/doc/refman/8.0/en/encryption-functions.html#function_password) 已从版本 8.0.11 中删除。 (2认同)
  • @rraallvv 我也遇到了这个错误。就像罗马所说,这是因为密码功能。只需使用如下字符串:“UPDATE user SETauthentication_string='my_password'WHERE user='root';” (2认同)

小智 8

解决方案

UPDATE user SET authentication_string=PASSWORD("my_password") WHERE User='root';
Run Code Online (Sandbox Code Playgroud)

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

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';
Run Code Online (Sandbox Code Playgroud)

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


Jai*_*ero 6

MACOS 10.14 莫哈韦|| MYSQL 8.0.15

这在我的 Mac 上不起作用:

须藤/usr/local/mysql/support-files/mysql.server 停止

但这确实有效:

sudo /usr/local/mysql-8.0.15-macos10.14-x86_64/support-files/mysql.server stop
Run Code Online (Sandbox Code Playgroud)

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

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

然后,

使用以下命令启动 MySQL:

sudo /usr/local/mysql-8.0.15-macos10.14-x86_64/bin/mysqld_safe --skip-grant-tables
Run Code Online (Sandbox Code Playgroud)

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

sudo /usr/local/mysql-8.0.15-macos10.14-x86_64/bin/mysql -u root
Run Code Online (Sandbox Code Playgroud)

这应该打开“mysql”提示。执行以下命令(如果没有完整查询,请向右滚动):

UPDATE mysql.user SET authentication_string='your-password-goes-here' WHERE user='root' and host='localhost';
Run Code Online (Sandbox Code Playgroud)

请记住

mysql-8.0.15-macos10.14-x86_64

(就我而言)是本地计算机上的安装文件夹,由于操作系统版本、mysql 版本、使用的安装方法等,它可能与我的不同,也可能与我的不同。


Ruc*_*mal 5

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

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

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

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
Run Code Online (Sandbox Code Playgroud)

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

sudo /usr/local/mysql/bin/mysql -u root
Run Code Online (Sandbox Code Playgroud)

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

A)MySQL 5.6及以下

UPDATE mysql.user SET password=PASSWORD('NewPassord') WHERE user='root';
Run Code Online (Sandbox Code Playgroud)

- 要么 -

B)MySQL 5.7以上

UPDATE mysql.user SET authentication_string=PASSWORD('NewPassord') WHERE user='root';
Run Code Online (Sandbox Code Playgroud)

通过系统偏好设置> MySql或使用命令重新启动MySQL。


S.M*_*hra 5

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

我已经浏览了所有的答案。他们中的一些人为我工作,其中一些人没有。我找到了一种在 macOS 或 OSX 上解决此问题的简单方法。以下是步骤:

先决条件:

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

安装 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 安装的版本,这对我来说是一个简单的修复。希望这也能帮助你。