在windows下:
打开命令行窗口,停止mysql服务: Net stop mysql
启动mysql,一般到mysql的安装路径,找到 mysqld-nt.exe
执行:mysqld-nt --skip-grant-tables 当前窗口将会停止。
另外打开一个命令行窗口,执行mysql 如果提示没有这个命令,先进入MYSQL的安装位置下BIN目录再运行mysql>use mysql
>update user set password=password("new_password") where user="root";
>flush privileges;
>exit
用Ctrl+Alt+Del,找到mysqld-nt的进程杀掉它,在重新启动mysql-nt服务,就可以用新密码登录了
注意:mysql默认是使用password()这个函数来加密密码的,用户密码不是以明文来存的。
在linux下:
如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。
启动 MySQL :bin/safe_mysqld --skip-grant-tables &
就可以不需要密码就进入 MySQL 了。
然后就是
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
重新杀 MySQL ,用正常方法启动 MySQL 。
问:如果忘记了MySQL的root密码应当如何取回?
答:解决方法如下:
在my.cnf的[mysqld]字段加入:
skip-grant-tables |
然后重启你的mysqld,这样久没有密码了.
然后进入mysql。
UPDATE mysql.user SET Password=PASSWORD ('password') WHERE User='root'; |
成功后
FLUSH PRIVILEGES; |
最后去掉my.cnf中的skip-grant-tables
重启mysqld。