2月阅读周·MySQL数据库入门:用户管理之修改用户密码篇

举报
叶一一 发表于 2025/02/23 15:18:34 2025/02/23
【摘要】 引言《MySQL数据库入门》作为一种技术的入门教程,最重要也最难的一件事情就是要将一些非常复杂、难以理解的思想和问题简单化,让初学者能够轻松理解并快速掌握。本教材对每个知识点都进行了深入的分析,并针对每个知识点精心设计了相关案例,然后模拟这些知识点在实际工作中的运用,真正做到了知识的由浅入深、由易到难。全书可以大致分成三个部分的内容:第1章主要介绍了数据库的相关知识,包括创建的数据库产品、数...

引言

《MySQL数据库入门》作为一种技术的入门教程,最重要也最难的一件事情就是要将一些非常复杂、难以理解的思想和问题简单化,让初学者能够轻松理解并快速掌握。本教材对每个知识点都进行了深入的分析,并针对每个知识点精心设计了相关案例,然后模拟这些知识点在实际工作中的运用,真正做到了知识的由浅入深、由易到难。

全书可以大致分成三个部分的内容:

第1章主要介绍了数据库的相关知识,包括创建的数据库产品、数据库存储结构、MySQL的安装配置与使用等。通过本章的学习,要求初学者对数据库有一个大致的认识,并且可以独立完成MySQL数据库的安装和配置。

第6~7章讲解了数据库中的事务、存储过程以及视图,这些内容可以对MySQL数据库进行性能优化,希望初学者可以循序渐进掌握MySQL中的各项技术。

第8章讲解了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用户的密码修改为mypwd1,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 MySQL 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 MySQL 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语句不能刷新权限表,因此一定要使用FLUSH PRIVILEGES语句重新加载用户权限,否则修改后的密码不会生效。

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 MySQL 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 USAFE语句修改指定账户的密码。

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

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

多学一招:如何解决root用户密码丢失

大家都知道root用户是超级管理员,具有很多的权限,因此该用户的密码一旦丢失,就会造成很大的麻烦,针对这种情况,MySQL提供了对应的处理机制,可以通过特殊方法登录到MySQL服务器,然后重新为root用户设置密码,具体步骤如下。

1. 停止MySQL服务

在“运行”对话框中,使用net命令停止MySQL服务,具体命令如下:

net stop mysql

2. 使用--skip-grant-tables启动MySQL服务

MySQL服务器中有一个skip-grant-tables选项,它可以停止MySQL的权限判断,也就是说任何用户都可以访问数据库,并且通过该选项也可以启动MySQL服务,在“运行”对话框中执行如下命令:

mysqld --skip-grant-tables

3. 登录MySQL服务器

重新开启一个“运行”对话框,在“运行”对话框中登录MySQL服务器,具体命令如下:

mysql -u root

4. 使用UPDATE语句设置root用户密码

MySQL登录成功后,可以通过UPDATE语句设置root用户的密码,具体语句如下:

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

5. 加载权限表

MySQL密码设置完成后,还需重新加载权限表,让设置的密码生效,具体语句如下:

FLUSH PRIVILEGES;

上述步骤执行完,可以使用EXIT或\q命令退出服务器,然后使用新密码重新登录。至此,便完成了root用户的密码设置。

总结

每个软件都会对用户信息进行管理,MySQL也不例外,MySQL中的用户分为root用户和普通用户,root用户为超级管理员,具有所有权限,如创建用户、删除用户、管理用户等,而普通用户只拥有被赋予的某些权限。

MySQL中的用户都可以对数据库进行不同操作,因此管理好每个用户的密码是至关重要的,密码一旦丢失就需要及时进行修改。root用户具有最高的权限,不仅可以修改自己的密码,还可以修改普通用户的密码,而普通用户只能修改自己的密码。


作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏️ | 留言📝

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。