前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 8.0 用户密码的修改

MySQL 8.0 用户密码的修改

作者头像
HCG_Sky
发布2022-03-31 21:32:59
4K0
发布2022-03-31 21:32:59
举报
文章被收录于专栏:HCG_Sky's BlogHCG_Sky's Blog

前言

 今天在了解MySQL的DCL时,跟着视频学习时,老师讲了一条修改用户密码的语法,但是在输入后却报错了,思考了一下可能是版本的问题(我使用的是8.0,视频教学中使用的是5.7),因此我在搜寻、探索一番后得到了解决的方案,在此记录一下

先使用老师讲的语法进行修改密码(我使用的是MySQL8.0)

代码语言:javascript
复制
# 语法
UPDATE USER SET PASSWORD = PASSWORD('新密码') WHERE USER = '用户名';
# 示例
UPDATE USER SET PASSWORD = PASSWORD('666') WHERE USER = 'hcg';    

 可以看到并不能修改用户密码,而且报错:语法有问题

在查询官方文档后发现,在8.0+就已经抛弃了这样的密码修改方法

取而代之的是ALTER......

这里我们使用新的密码修改语法来演示一下

代码语言:javascript
复制
-- 语法
ALTER USER '用户名'@'主机名'
  IDENTIFIED BY '新密码'
  REPLACE '旧密码';
-- 例子
 ALTER USER 'hcg'@'localhost'
  IDENTIFIED BY '66666666';

 可以看到用户密码已更改成功!

哎?你可能回问:“REPLACE 呢?怎么不带上它耍啊?” 好问题!REPLACE是一个子句,官方对于它的解读如下

 总结就是,我们这个语句是用来修改指定用户的密码的,只有当指定用户为当前用户时,才需要REPLACE进行旧密码验证,修改其它用户时不需要REPLACE来验证旧密码的,所以我改密码的SQL里没有REPLACE这个子句

当然了,改当用户的密码我们也可以直接使用官方给出的专属语句进行修改

代码语言:javascript
复制
ALTER USER USER() IDENTIFIED BY '新密码' REPLACE '旧密码';

顺便提一下,在MySQL 8.0中是可以指定密码的加密方式的,如下

代码语言:javascript
复制
ALTER USER '用户名'@'主机名'
  IDENTIFIED WITH caching_sha2_password BY '新密码'
  REPLACE '旧密码';

caching_sha2_password就是我们要选择的加密方式

本篇文章采用 署名 4.0 国际 (CC BY 4.0) 许可协议进行许可。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档