当前使用的账号为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用户登录,重新设置密码
好了,今天的分享就到这里了,由于是个人整理,难免会出错,欢迎大家批评指正,万般感谢。