扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
MySQL密码忘了的操作:
坚守“ 做人真诚 · 做事靠谱 · 口碑至上 · 高效敬业 ”的价值观,专业网站建设服务10余年为成都水处理设备小微创业公司专业提供成都企业网站定制营销网站建设商城网站建设手机网站建设小程序网站建设网站改版,从内容策划、视觉设计、底层架构、网页布局、功能开发迭代于一体的高端网站建设服务。
1.关闭MySQL数据库,因为root密码忘记了,mysqladmin无法使用,此时,只能通过killpid关闭程序。在这里,科普一下kill和kill-9的区别默认参数下,kill发送SIGTERM信号给进程。
告诉进程,你需要被关闭,请自行停止运行并退出。kill-9发送SIGKILL信号给进程,告诉进程,你被终结了,请立刻退出。与SIGTERM相比,这个信号不能被捕获或忽略,同时接收这个信号的进程在收到这个信号时不能执行任何清理所以。
万不得已,不要通过kill-9杀掉进程,这可能导致MySQL数据库的物理结构损坏,无法重新启动。
2.在my.cnf文件部分添加skip-grant-tables参数。
3.登录数据库,修改root账户的密码以下是修改root密码的三种方式:
1mysqlsetpasswordfor'root'@'localhost'=password('123')。无需刷新权限表。
2mysqlupdatemysql.usersetpassword=password("456")whereuser="root"andhost="localhost"。
mysqlflushprivileges;3#mysqladmin-urootpassword"123"。
4.关闭数据库,注释掉skip-grant-tables参数,重新启动数据库。上面这种方式虽然不错,但是有个问题,你必须重启数据库,对于线上环境,这可能是不被允许的。
mysql -uroot -p 输入密码回车后,出现如下图错误。这时候需要我们破解密码。
service mysqld stop //先停止mysql服务。
然后打开mysql配置文件/etc/my.cnf.在【mysqld】下面添加一行代码:skip-grant-tables。这行代码意思就是跳过跳过授权表,即是可以跳过密码验证直接进入数据库。
service mysqld restart //重启mysql数据库。假如不重启的话,不会生效。
mysql -uroot -p //此时直接回车,既可以进入数据库。
出现mysql就说明你已经进入到mysql数据库里了。
进数据库后,
use mysql //选择mysql这个库,因为mysql的root密码存放在这个数据库里。
show tables //查看下mysql库里有哪些表,我们需要操作的用户名密码都在user表里。
desc user //查看下user表有哪些字段
更改root密码。
update user set password=password('123456') where user="root"; //用户选root,可以随便更改成任意密码,我这里设置的123456,password()是mysql密码加密的一个函数。
flush privileges; //刷新下密码,使更改的生效。
exit //退出数据库。
退出数据库,重新登录
mysql -uroot -p //回车输入刚刚更改的密码,就能进去了。
然后再次进入配置文件vi /etc/my.cnf 把skip-grant-tables去掉。
1、以管理员的身份打开cmd,然后跳过权限启动mysql,命令:xxx --skip-grant-tables 前面是mysql配置文件的位置,然后回车。
2、新打开个cmd窗口,进入到mysql配置文件目录bin下,然后输入 mysql -uroot -p 再回车,这步是以空密码进入mysql。
3、空密码进入mysql后,如果前面都设置正确的话,这步显示的界面是Welcome to the MariaDB monitor。
4、然后可以show database; 查看当前的数据库,回车后会列举出当前数据库的列表。
5、然后执行命令:update user set password=password('新密码') where user='root'; 并回车,其中括号中的就是将要设置的新密码。
6、执行完后会提示你 Query OK,表示执行成功了,再用新密码登录就可以了。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流