1.打开任务管理器,关闭mysqld.exe
2.win+r运行cmd打开控制台,输入mysqld --skip-grant-tables启动服务器
3.win+r重新运行cmd打开控制台,输入mysql进入数据库
4.use mysql选择数据库,对user表进行更新操作:update user set authentication_string=password('haha')
也可能不是authentication_string而是password,可以通过desc user命令查看
5.经过以上步骤,数据库密码被置为haha。关闭以上打开的全部窗口,打开任务管理器,关闭mysqld.exe。
6.以管理员身份运行cmd,net start mysql启动mysql服务
7.现在就可以用mysql -uroot -p登录了
下面详细解释:
mysql是一个服务
net start mysql 启动服务
net stop mysql 关闭服务,更简单的方式是去任务管理器中把mysqld进程关掉也可以
mysqld是守护进程
mysqld这个程序有很多参数,用mysqld /?命令查看。要找回密码只需要--skip-grant-tables,跳过授权阶段。这样登录数据库就无需密码了.
mysql中的关键表mysql
mysql这个表十分重要, 其实刚刚安装mysql之后的这四个表都很重要,堪称四大金刚,各有各的作用,存储着元信息。
| information_schema
| mysql |
| performance_schema
| sys
mysql.user表里面存着用户名和密码等信息,user列是用户名,authentication_string是密码,要注意密码肯定是经过password(str)函数加密过的,不能直接update user set authentication_string='haha'.
进程启动与关闭
不用任务管理器,直接在控制台下似乎更高端一些。
tasklist命令查看正在运行的进程
taskkill命令杀死进程
在windows下要学会使用命令帮助,如taskkill -?查看taskkill的相关参数信息
用命令行关闭mysql服务:
taskkill /im mysqld.exe
taskkill /pid 2323