mysql 修改管理员密码
mysql 修改管理员密码
本次学习环境:
windows 7系统、mysql 5.7.14。
一、如果是忘记了用户密码:
(1)、关闭正在运行的MySQL服务。
方法一:可以直接操作wamp软件,左键点击【wamp软件的图标】-->【MySQL】-->【Service administration】-->【Stop service】;
方法二:在命令行窗口,使用已知别的用户名和密码,使用mysqladmin命令停止服务:
C:\wamp64\bin\mysql\mysql5.7.14\bin>mysqladmin -uroot -p shutdown Enter password: ***
(2) 跳过mysql的权限表认证:
C:\wamp64\bin\mysql\mysql5.7.14\bin>mysqld --skip-grant-tables
如果回车执行后,光标在新的一行的开头一直闪烁,无法进行其他操作,证明执行成功。
反之,执行失败,原因可能就是第一步没有停止mysql服务。
(3)新打开一个dos窗口修改密码:
update mysql.user set password=password("123456") where user="test";
如果报错提示字段password不存在,可能密码字段不是password,可以执行以下语句试试:
update mysql.user set authentication_string=password("123456") where user="test";
(4)启动mysql服务,使用用户的新密码登录即可。
二、在登录状态,修改密码:
方法一(使用set password命令):
格式:mysql> set password for 用户名@localhost = password('新密码');
示例:
mysql> set password for test@localhost = password('555555');
方法二(使用mysql工具mysqladmin):
格式:mysqladmin -u用户名 -p旧密码 password 新密码
示例:
(1)进入到mysql的bin目录下;
(2)执行命令:
mysqladmin -utest -p555555 password 111111
方法三(直接修改mysql.user表):
update mysql.user set authentication_string=password("123456") where user="test";
总结:
(1)在执行 --skip-grant-tables 时如果无效,可能是mysql服务没有停掉。
(2)mysql的管理员表示mysql.user,但是密码字段可能是password,也可能是 authentication_string。