Mysql账户密码修改

本文介绍了如何在MySQL中修改用户密码,包括使用mysqladmin命令、直接更新mysql.user表以及通过SET语句进行更改。同时,针对root用户忘记密码的情况,提供了通过--skip-grant-tables选项启动MySQL服务并重置密码的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当前使用的账号为root,密码为root,拥有最高权限。

为了突显修改效果,当文中测试账号登录使用密码显示登录,实际使用时请使用隐式密码登录。

我们使用Mysql账户创建及删除一文中创建新账户的方法创建一个用户名为test、host为localhost、密码为test的测试账号:


登录test账号:


1.修改用户密码

1.1使用mysqladmin命令指定root新密码

基本语法:

mysqladmin -u root[ -h host] -p password "newpwd"

内容说明:

username:要修改密码的用户名称。

host:服务器主机,该参数可以不写(即[]中内容可以不写),默认为localhost。

-p:输入当前密码。

password:关键字,后面双引号的内容newpwd为新设置的密码。

将root的密码设置为123456并使用新密码登录:


1.2修改mysql用户表修改密码

在浅谈Mysql权限控制中我们谈过,mysql.user表中记录允许连接到服务器的账号信息,因此可以通过直接修改mysql.user表来改变用户的密码,此方法需要操作用户对mysql.user有update权限。

在这里我们使用root账号修改test用户的密码为test1:


这里注意要手动刷新权限信息,关于刷新原因可看浅谈Mysql权限控制

使用test登录:


注意:在mysql5.7版本中,mysql.user已经没有了password字段,而是使用authentication_string字段代替,修改方法相同。

1.3使用SET语句修改密码

基本语法:

SET PASSWORD [ FOR 'user'@'host' ] = PASSWORD('newpwd')

内容说明:

[ FOR 'user'@'host' ]:在修改其它账户时使用,user为账户名称,host为账户连接主机,只有root用户可以通过该方法修改其它账户密码,修改自己密码时不需要该内容。

使用root账号修改test用户的密码为test2:


使用test登录并使用密码为test3:


2.root用户密码丢失解决方案

步骤1:以--skip-grant-tables选项启动Mysql服务

windows环境下启动方法:

mysqld --skip-grant-tables或

mysqld-nt --skip-grant-tables

linux环境下启动方法:

mysqld_safe --skip-grant-tables user=mysql或

/etc/init.d/mysql start-mysqld --skip-grant-tables


步骤2:使用root用户登录,重新设置密码


好了,今天的分享就到这里了,由于是个人整理,难免会出错,欢迎大家批评指正,万般感谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值