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

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

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

Mysql账户密码修改

登录test账号:

Mysql账户密码修改

1.修改用户密码

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

基本语法:

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

内容说明:

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

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

-p:输入当前密码。

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

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

Mysql账户密码修改

1.2修改mysql用户表修改密码

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

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

Mysql账户密码修改

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

使用test登录:

Mysql账户密码修改

注意:在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:

Mysql账户密码修改

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

Mysql账户密码修改

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

Mysql账户密码修改

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

Mysql账户密码修改

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

相关文章: