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

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()函数进行加密。


http://www.kler.cn/news/312397.html

相关文章:

  • 第6天:趋势轮动策略开发(年化18.8%,大小盘轮动加择时)
  • 基于STM32设计的水渠闸门远程控制系统(华为云IOT)(226)
  • 14_Python面向对象
  • 【LeetCode】每日一题 2024_9_17 公交路线(BFS)
  • Effective Java 学习笔记45-48 Stream
  • VS code 查看 ${workspaceFolder} 目录指代路径
  • 设计模式-行为型模式-解释器模式
  • Python 解析 Charles JSON Session File (.chlsj)
  • 攻防世界--->gametime
  • 数据结构-2.7.单链表的查找与长度计算
  • linux-系统管理与监控-磁盘管理
  • mysql学习教程,从入门到精通,SQL DISTINCT 子句 (16)
  • DeDeCMS靶场漏洞复现
  • 前端vue-父传子
  • 2024年亲测好用的四大在线翻译工具大盘点!
  • keras和tensorflow可用的一组版本
  • 【百日算法计划】:每日一题,见证成长(013)
  • MySQL练手题--获得最近第二次的活动(困难)
  • 【JVM】符号引用 和 直接引用
  • 中国计算机学会(CCF)推荐中文科技期刊目录(2019年)
  • nacos报Client not connected, current status:STARTING
  • Stable Diffusion绘画 | ControlNet应用-IP-Adapter:堪比 Midjourney 垫图
  • Ubuntu在CMakeLists.txt中指定OpenCV版本的参考方法
  • 【QT基础】创建项目项目代码解释
  • Python和Java的自动化测试技术研究及应用探索
  • Linux Vim编辑器常用命令
  • 【源码+文档+调试讲解】健身房管理平台小程序
  • 【Linux修行路】网络套接字编程——UDP
  • 828华为云征文 | 云服务器Flexus X实例:one-api 部署,支持众多大模型
  • 信息化时代下的高标准农田灌区:变革与机遇并存