OSX 上的 MySQL 用户表密码列差异
尝试在 macOS 上更改 MySQL root 密码时,用户可能会遇到错误,指示“mysql.user”表中不存在“password”列。这可能会令人困惑,因为“密码”字段通常与在 MySQL 数据库中存储用户密码相关。
造成这种差异的原因是,在 MySQL 5.7 中,“密码”列已从“密码”字段中删除。 mysql.user' 表并替换为 'authentication_string' 列。进行此更改是为了通过使用更新且更安全的哈希算法存储密码来增强安全性。
要在使用 MySQL 5.7 的 macOS 上更改 MySQL root 密码,请按照以下步骤操作:
打开终端窗口并键入以下命令以使用“mysql”命令行连接到 MySQL client:
mysql -uroot -p
如果 'mysql.user' 表中不存在 'authentication_string' 列,使用以下命令创建它:
ALTER TABLE mysql.user ADD authentication_string TEXT;
更新 MySQL通过使用以下命令将“authentication_string”列设置为新密码来更改 root 用户的密码:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE user='root';
刷新 MySQL 权限以应用更改:
FLUSH PRIVILEGES;
退出 MySQL client:
exit
您现在应该能够使用新的 root 密码登录 MySQL。此更改允许您增强 MySQL 安装的安全性,同时仍然保留用户密码管理功能。
以上是为什么我的 MySQL `mysql.user` 表在 macOS 上没有 `password` 列?的详细内容。更多信息请关注PHP中文网其他相关文章!