一. 修改密码指令
1. 说明
这里是以MySQL5.7为例,修改密码,这里指的是能用root连接上MySQL,修改自身密码或者其它账号密码 。(与下面的忘记密码不同哦)
2. 修改方法
首先要链接上mysql,进入mysql命令行界面,链接指令:【mysql -uroot -p123456】。
-- 方案1:通过指令修改root的密码 set password for root@localhost = password('123456'); --方案2:通过指令修改root的密码 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; --方案3:直接修改对应表 update mysql.user set authentication_string = password('123456') where user='root';
注:对于方案3,修改表的方式,mysql5.7及以上版本用的是 authentication_string 字段存储密码,之前版本用的是password存储密码,所以5.7以前的版本方案的代码如下:
update mysql.user set password= password('123456') where user='root';
部分指令截图:
二. Linux下忘记密码
MySQL5.7为例
1. 修改配置,使其免密码登录
(1). 找到mysql的配置文件 my.cnf,一般位于/etc/my.cnf (也可能位于/etc/mysql/my.cnf),在开头增加1句话:skip-grant-tables ,如下图:
(2). 重启mysql服务
【stystemctl restart mysqld】
发现重启失败:
解决方案:
(1). 要去掉之前配置文件中的添加的密码策略配置
(2). 可能还需要:(上面改完后还是报同样的错的时候,再执行下面的命令)
ls -ld /var/run/mysqld/ chown mysql.mysql /var/run/mysqld/
参考:https://www.jb51.net/article/81465.htm
重新启动,重启成功。
2. 修改密码
通过指令【mysql -uroot -p】,敲击回车,直接登录成功。然后运行指令,进行密码修改,如下图:
update mysql.user set authentication_string = password('123456') where user='root'; --刷新(作用是不用重启DB服务上述指令就生效) flush privileges;
3. 还原配置
退出后删掉原配置文件中的 skip-grant-tables,重启mysql,进行登录。
4. 测试
重新登录【mysql -uroot -p123456】
三. Windows下忘记密码
MySQL5.7为例,套路和上面Linux是一样的
1. 配置跳过密码登录
找到配置文件my.ini,它位于数据存储目录下,eg:D:ProgramDataMySQLMySQL Server 5.7my.ini ,增加 skip-grant-tables,如下图,然后重启mysql服务。【net stop mysql】【net start mysql】
2. 连接服务,修改密码
通过指令【mysql -uroot -p】,敲击回车,直接登录成功。然后运行指令,进行密码修改,如下图:
update mysql.user set authentication_string = password('123456') where user='root'; --刷新(作用是不用重启DB服务上述指令就生效) flush privileges;
3. 恢复原配置,重启服务
退出后删掉原配置文件中的 skip-grant-tables,重启mysql,进行登录。
4. 进行测试,大功告成
重新登录【mysql -uroot -p123456】
!
- 作 者 : Yaopengfei(姚鹏飞)
- 博客地址 : http://www.cnblogs.com/yaopengfei/
- 声 明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
- 声 明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。