当前位置: 首页 > news >正文

MySQL——数据库的高级操作(二)用户管理(4)修改用户密码

        MySQL中的用户都可以对数据库进行不同操作,因此管理好每个用户的密码是至关重要的,密码一旦丢失就需要及时进行修改。root 用户具有最高的权限,不仅可以修改自己的密码,还可以修改普通用户的密码,而普通用户只能修改自己的密码。由于 root 用户和普通用户修改密码的方式比较类似,接下来就以 root 用户修改自己的密码为例进行演示,具体如下。

1、修改 root 用户的密码

1)使用 mysqladmin 命令修改 root 用户密码

        mysqladmin 命令通常用于执行一些管理性的工作,以及显示服务器状态等,在MySQL 中可以使用该命令修改 root 用户的密码。mysqladmin 命令修改密码的语法格式如下:

mysqladmin -u username [-h hostname] -p password new_password

        上述语法格式中,username为要修改的用户名,这里指的是 root 用户,参数一h 用于指定对应的主机,可以省略不写,默认为 localhost,-p 后面的 password 为关键字,而不是修改后的密码,new_password 为新设置的密码。需要注意的是,在使用 mysqladmin命令修改 root 用户密码时,需要在 C:\Documents and Settings\Administrator>目录下进行修改。

        在命令行窗口中,使用 mysqladmin 命令,将 root 用户的密码修改为 mypwdl,SQL语句如下:

mysqladmin -u root -p password mypwd1

        上述语句执行成功后,会提示输人密码,具体如下:

C:\Documents and Settings\Administrator>mysqladmin -u root -p password mypwd1
Enter password:******

        需要注意的是,上面提示输人密码,是指 root 用户的旧密码,密码输人正确后,该语句执行完毕,root 用户的密码被修改,下次登录时使用新的密码即可。初学者可以在命令行窗口中进行验证,如下所示:

C:\Documents and Settings\Administrator>mysql -uroot -pmypwd1
Welcome to the MySOL monitor. Commands end with;or \g.
Your MySQL connection id is 8
Server version: 5.5.27 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respectiveowners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

        从上述结果可以看出,使用新密码成功登录了 MySQL数据库,因此,说明密码修改成功。

2)使用 UPDATE 语句修改 root 用户密码

        由于所有的用户信息都存放在 mysql. user 表中,因此,只要 root 用户登录到MySQL 服务器,使用 UPDATE 语句就可以直接修改自己的密码。UPDATE语句修改密码的语法格式如下:

UPDATE mysql.user set Password=PASSWORD('new password')
WHERE User='username' and Host='hostname';

        root 用户登录到 MySQL 服务器,通过 UPDATE 语句将 root 用户的密码修改为mypwd2,UPDATE语句如下:

UPDATE mysql.user SET Password=PASSWORD('mypwd2') WHERE User= 'root' and Host=localhost';

        上述语句执行成功后,还需使用 FLUSH PRIVILEGES 重新加载权限表,然后就可以使用新密码登录 MySQL数据库了,结果如下:

C:\Documents and Settings\Administrator>mysql -uroot -pmypwd2;
Welcome to the MySOL monitor. Commands end with;or \g.
Your MySQL connection id is 8
Server version: 5.5.27 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respectiveowners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

        需要注意的是,由于 UPDATE 语句不能刷新权限表,因此一定要使用 FLUSHPRIVILEGES语句重新加载用户权限,否则修改后的密码不会生效。

3)使用 SET 语句修改 root 用户的密码

        root 用户登录到 MySQL 服务器后,还可以通过 SET 语句修改 root 用户的密码。SET语句修改密码的语法格式如下:

SET PASSWORD=PASSWoRD('new password')

        需要注意的是,由于 SET 语句没有对密码加密的功能,因此,新密码必须使用PASSWORD()函数加密,并且新密码需要使用引号括起。

        root 用户登录到 MySQL 服务器,使用 SET 语句将 root 用户的密码修改为mypwd3,SET 语句如下:

SET PASSWORD=password('mypwd3');

        上述语句执行成功后,在命令行窗口中使用新密码 mypwd3 登录数据库,结果如下:

C:\Documents and Settings\Administrator>mysql -uroot -pmypwd3;
Welcome to the MySOL monitor. Commands end with;or \g.
Your MySQL connection id is 8
Server version: 5.5.27 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respectiveowners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

2、root 用户修改普通用户的密码

1)使用 GRANT 语句修改普通用户密码

           GRANT语句的作用比较多,不仅可以创建用户为用户授权,还可以修改用户的密码,通常情况下,为了不影响当前账户的权限,可以使用 GRANT USAGE 语句修改指定账户的密码。

        GRANT 语句修改密码的语法格式如下:

GRANT USARE ON *.* To 'username '@' localhost' IDENTIFIED BY [PASSWORD]'new_password';

2)使用 UPDATE 语句修改普通用户的密码

        root 用户具有操作数据库的所有权限,因此,它不仅可以使用 UPDATE 语句修改自己的密码,还可以使用 UPDATE 语句修改普通用户的密码,其语法格式与修改 root 用户密码的语法格式相同,具体如下:

UPDATE mysql.user set Password=PASSWORD('new password')
WHERE User='username' and Host='hostname';

        需要注意的是,使用上述语句修改完普通用户的密码后,还需要使用 FLUSH PRIVILEGES 语句重新加载权限表。

3)使用 SET 语句修改普通用户的密码

        前面讲过使用 SET 不仅可以修改 root 用户密码,而且还可以修改普通用户密码,在修改普通用户密码时,还需要增加一个 FOR 子句,指定要修改哪个用户即可。SET语句修改密码的语法格式如下:

SET PASSWORD FOR'username'@'hostname'=PASSWORD('new_password');

3、普通用户修改密码

        普通用户也可以修改自己的密码,这样普通用户就不需要每次修改密码时都通知管理员,普通用户登录到 MySQL 服务器后,可以通过 SET 语句来设置自己的密码,SET语句的基本格式如下:

SET PASSWORD=PASSWORD('new_password');

        SET语句修改普通用户密码时,和修改 root 用户是一样的,都需要使用PASSWORD()函数进行加密。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 算法面经手撕系列(2)--手撕BatchNormlization
  • 基于鸿蒙API10的RTSP播放器(二:视频切换实现)
  • 类的继承性和多态性
  • 微生物分类检测系统源码分享
  • 004: VTK读入数据---vtkImageData详细说明
  • Go语言中的链表与双向链表实现
  • 食品分类2检测系统源码分享
  • 【Vue嵌套数据中,实现动态表头和内容】
  • 《职教论坛》
  • Angular面试题一
  • 闯关leetcode——21. Merge Two Sorted Lists
  • Java面试篇基础部分-Java中常用的I/O模型
  • Rust 简介与安装
  • leetcode 每日一题
  • 【C++】—— list 的了解与使用
  • 【5+】跨webview多页面 触发事件(二)
  • create-react-app项目添加less配置
  • echarts的各种常用效果展示
  • FineReport中如何实现自动滚屏效果
  • leetcode388. Longest Absolute File Path
  • 关于springcloud Gateway中的限流
  • 深度解析利用ES6进行Promise封装总结
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • Nginx实现动静分离
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 关于Android全面屏虚拟导航栏的适配总结
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​人工智能书单(数学基础篇)
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • #includecmath
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (ZT)出版业改革:该死的死,该生的生
  • (备忘)Java Map 遍历
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (三)mysql_MYSQL(三)
  • (算法)Travel Information Center
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (原創) 未来三学期想要修的课 (日記)
  • (转)C#调用WebService 基础
  • (转)德国人的记事本
  • .apk 成为历史!
  • .NET 发展历程
  • .NET6 命令行启动及发布单个Exe文件
  • .NET企业级应用架构设计系列之技术选型
  • /bin/bash^M: bad interpreter: No such file ordirectory