MySQL密码忘了怎么办
MySQL密码忘了的操作:
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密码的三种方式:
1>mysql>setpasswordfor'root'@'localhost'=password('123')。无需刷新权限表。
2>mysql>updatemysql.usersetpassword=password("456")whereuser="root"andhost="localhost"。
mysql>flushprivileges;3>#mysqladmin-urootpassword"123"。
4.关闭数据库,注释掉skip-grant-tables参数,重新启动数据库。上面这种方式虽然不错,但是有个问题,你必须重启数据库,对于线上环境,这可能是不被允许的。
首先启动命令行
1.在命令行运行:taskkill /f /im mysqld-nt.exe
下面的操作是操作mysql中bin目录下的一些程序,如果没有配置环境变量的话,需要切换到mysql的bin 目录下执行如下语句。不然无效
2.继续在命令行运行:mysqld-nt --skip-grant-tables
3.新开一个命令行运行:mysql -u root (如果没有配置mysql的bin环境变量的话需要切换到bin目录下执行此语句)
如果不想改密码,只是想看原来的密码的话。可以在命令行执行这个语句
select host,user,password from mysql.user;//即可查看到用户和密码
如果要修改密码的话,在命令行下执行下面的语句
update mysql.user set password='这里填写你要设置的密码' where user='root';
完成这些操作后,继续在命令行运行
taskkill /f /im mysqld-nt.exe;//安全着想,先结束,因为现在这样是可以用mysql -u root 直接登录的
net start mysql;//启动mysql服务