MySQL忘记root密码解决方法
mysql-5.7.12-winx64.zip解压安装方式
1、解压文件到你想要安装的位置。
本人是直接解压到E盘。
2、配置环境变量,在path中放入:D:\develop\mysql-5.7.25-winx64\bin;
3、在D:\develop\mysql-5.7.25-winx64中,新建my.ini,对mysql进行配置。
(注意这里my.ini编码为ANSI)
配置内容可为:
[client]
port=3306
default-character-set=utf8
[mysqld]
port=3306
character_set_server=utf8
解压目录
basedir=D:\develop\mysql-5.7.25-winx64
解压目录下data目录
datadir=D:\develop\mysql-5.7.25-winx64\data
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[WindowsMySQLServer]
Server=D:\develop\mysql-5.7.25-winx64\bin\mysqld.exe
4、进入命令窗口
首先在D:\develop\mysql-5.7.25-winx64目录执行:命令:mysqld --initialize #直接初始化mysql,生成data文件夹中的文件。
接着在D:\develop\mysql-5.7.25-winx64\bin目录执行:
命令:mysqld -install #安装mysql
命令:net start mysql #启动[服务器]
5、登陆
此时用mysql -uroot -p登录时,不知道密码,按以下步骤设置密码。
1)编辑mysql配置文件my.ini(E:\mysql-5.7.12-winx64),在[mysqld]这个条目下加入
skip-grant-tables
保存退出后重启mysql
① 点击“开始”->“运行”(快捷键Win+R)。
② 停止:输入 net stop mysql
③ 启动:输入net start mysql
这时候在cmd里面输入mysql -u root -p就可以不用密码登录了,出现password:的时候直接回车可以进入。
(1)进入mysql数据库:
mysql> use mysql;
Database changed
(2)给root用户设置新密码
mysql> (版本5.5)update user set password=password("zxm1243") where user="root";
(版本5.7)update user set authentication_string=password('zxm1243') where user='root' and Host = 'localhost';
Query OK, 1 rows affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
(3)刷新数据库
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
(4)退出mysql:
mysql> quit
Bye
改好之后,再修改一下my.ini这个文件,把我们刚才加入的"skip-grant-tables"这行删除,保存退出再重启mysql就可以了。
修改完毕。重启mysql服务。
登录:mysql -uroot -pzxm1243
mysql就可以连接了
但此时操作似乎功能不完全,还要alter user…
mysql> alter user 'root'@'localhost' identified by '123';
这样也可以:
mysql> set password for 'root'@'localhost'=password('zxm1243');
然后:
mysql>quit;
登录:
Mysql -uroot -pzxm1243 就可以直接登录。