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

news/2024/9/19 4:15:37 标签: 数据库, mysql

        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.niftyadmin.cn/n/5664960.html

相关文章

手写的从前

手写的从前 分手了,从第一次爱上她到现在,大概5年了吧,一千五百个日夜啊,我们有过欢笑,有过争吵。我曾经以为只要我足够优秀,取得够好的成绩,就不会让你离开,如今看来一切还是那么可…

深入探索Android开发之Java核心技术学习大全

Android作为全球最流行的移动操作系统之一,其开发技能的需求日益增长。本文将为您介绍一套专为Android开发者设计的Java核心技术学习资料,包括详细的学习大纲、PDF文档、源代码以及配套视频教程,帮助您从Java基础到高级特性,再到A…

C语言 | Leetcode C语言题解之第404题左叶子之和

题目: 题解: bool isLeafNode(struct TreeNode *node) {return !node->left && !node->right; }int sumOfLeftLeaves(struct TreeNode *root) {if (!root) {return 0;}struct TreeNode **q malloc(sizeof(struct TreeNode *) * 2001);in…

基于SpringBoot+Vue+MySQL的在线招投标系统

系统展示 用户前台界面 管理员后台界面 系统背景 在当今商业环境中,招投标活动是企业获取项目、资源及合作伙伴的重要途径。然而,传统招投标过程往往繁琐复杂,涉及众多文件交换、信息审核与沟通环节,不仅效率低下,还易…

MyISAM引擎介绍

文章目录 特点适用场景不足锁机制表级锁的类型锁的获取和释放锁的等待队列 示例共享锁排他锁READ LOCAL MyISAM是MySQL的一种存储引擎,它以其简单性和高速度而著称。在早期的MySQL版本中,MyISAM广泛使用,尤其是在那些以读操作为主的应用场景中…

SDKMAN!软件开发工具包管理器

认识一下SDKMAN!(The Software Development Kit Manager)是您在Unix系统上轻松管理多个软件开发工具包的可靠伴侣。想象一下,有不同版本的SDK,需要一种无感知的方式在它们之间切换。SDKMAN拥有易于使用的命令行界面(CLI)和API。其…

mac python安装库的问题——以requests为例

在 macOS 上安装 Python 的 requests 库,可以通过以下步骤完成: 打开终端: 可以在“应用程序” > “实用工具”中找到“终端”,或者通过 Spotlight 搜索“终端”。 确保已安装 Python: 输入以下命令检查 Python 是…

计算机毕业设计推荐-基于python的电子图书阅读推荐平台【源码+文档+讲解】

💖🔥作者主页:毕设木哥 精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻 实战项目 文章目录 实战项目 一、基于python的电子图书阅读推…