首页 >数据库 >mysql教程 >为什么我的 MySQL `mysql.user` 表在 macOS 上没有 `password` 列?

为什么我的 MySQL `mysql.user` 表在 macOS 上没有 `password` 列?

Patricia Arquette
Patricia Arquette原创
2024-11-29 10:20:10829浏览

Why Doesn't My MySQL `mysql.user` Table Have a `password` Column on macOS?

OSX 上的 MySQL 用户表密码列差异

尝试在 macOS 上更改 MySQL root 密码时,用户可能会遇到错误,指示“mysql.user”表中不存在“password”列。这可能会令人困惑,因为“密码”字段通常与在 MySQL 数据库中存储用户密码相关。

造成这种差异的原因是,在 MySQL 5.7 中,“密码”列已从“密码”字段中删除。 mysql.user' 表并替换为 'authentication_string' 列。进行此更改是为了通过使用更新且更安全的哈希算法存储密码来增强安全性。

要在使用 MySQL 5.7 的 macOS 上更改 MySQL root 密码,请按照以下步骤操作:

  1. 打开终端窗口并键入以下命令以使用“mysql”命令行连接到 MySQL client:

    mysql -uroot -p
  2. 出现提示时输入当前的 MySQL root 密码。
  3. 如果 'mysql.user' 表中不存在 'authentication_string' 列,使用以下命令创建它:

    ALTER TABLE mysql.user ADD authentication_string TEXT;
  4. 更新 MySQL通过使用以下命令将“authentication_string”列设置为新密码来更改 root 用户的密码:

    UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE user='root';
  5. 刷新 MySQL 权限以应用更改:

    FLUSH PRIVILEGES;
  6. 退出 MySQL client:

    exit

您现在应该能够使用新的 root 密码登录 MySQL。此更改允许您增强 MySQL 安装的安全性,同时仍然保留用户密码管理功能。

以上是为什么我的 MySQL `mysql.user` 表在 macOS 上没有 `password` 列?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn