应该有不少用户在使用mysql的时候搞忘记过自己的密码吧?今天说三种mysql重置密码的方法.
第一种:修改my.ini文件
第二种:命令跳过
第一二种方法其实都是同一个原理:通过配置参数“skip_grant_tables”在mysql启动时跳过grant_tables(授权表),从而通过命令来重置root帐号的密码
第三种:利用运维软件(例如宝塔)或者集成环境自带的重置(这个原理我就不知道了)
第一种:修改mysql根目录下的my.ini文件(适用于windows系统)
A.首先停止mysql服务(开始菜单搜索"服务"然后找到mysql,停止它.
或者管理员权限运行cmd之后输入net stop mysql再回车)
B.找到my.ini文件(右击mysql服务找到可执行文件路径,从所在的目录或其它层级目录搜索),在[mysqld]块下增加“skip_grant_tables”(你记得文件路径的话也可以直接找到mysql根目录,打开my.ini,然后在[mysqld]块下增加“skip_grant_tables”)
(引号是注明要输入的内容,不是让你把引号也输进去哈)
大概就像这样,标记了mysqld块的位置,还有参数的添加位置
C.然后重启mysql服务(这个不用讲,和停止服务差不多的操作,如果是命令的话,改成net start mysql)
D.以管理员权限打开cmd命令窗口,执行mysql -uroot –p直接回车不用输入密码
E.输入use mysql,回车挂载数据库
F.使用update语句更新表内容修改密码
update user set authentication_string=password(‘testpassword’) where user='root';
G.然后刷新权限:flush privileges,再退出:quit
H.重新登录:mysql -uroot -p提示输入密码,这时输入密码就能登录
I.记得回去my.ini把参数“skip_grant_tables”删除了,然后重启mysql服务
第二种:利用命令跳过(适用于linux环境)
1.首先输入“service mysqld status”查看当前mysql服务状态
2.输入“killall -TERM mysqld”命令停止所有的mysqld进程。
3.输入“service mysqld stop”命令停止mysqld服务。
4.输入“mysqld_safe --skip-grant-tables &”命令以无密码方式进入MySQL安全模式。
5.输入“mysql -u root”并按回车键即可。
6.输入“use mysql;”挂载数据库。
注意:请勿忘记在最后输入分号
7.输入"update user set password=password(‘testpassword’) where user='root';"将root密码修改为testpassword。(当然你想改啥密码改啥密码)
G.然后刷新权限:flush privileges,再退出:quit
H.重新登录:mysql -uroot -p提示输入密码,这时输入密码就能登录
只是这里是直接使用命令指定了参数,就不需要对my.ini文件进行修改,后面的步骤差不多我就不配图了(虽然我前面也没配)
第三种:利用运维软件(适用于服务器环境)
宝塔左边栏有个数据库选项,选择之后跳到数据库管理页,在这里直接修改root密码就可以了
还有一种phpmyadmin的集成工具,它自带一个root密码重置选项,很容易找到,就不说了
如果对博文有所疑问欢迎评论
