前言

原因:很久没用mysql了,需要用的时候忘记密码了,所以重置一下,翻了很多文章,拼凑后解决了问题,有用的文章最总计附录中可以看到。

注意:很多sudo systemctl restart mysqld 这种命令重启服务啊,sudo skip-grant-tables跳过密码验证啊,这种以sudo都是是 Linux 系统(包括mac电脑)的命令啊,表示以管理员方式执行,Windows电脑就不要乱来了啊
在这里插入图片描述

mysql 版本: mysql 5.7。
其他:有看到用net stop mysql运行后就可以停止mysql,但是我的一直没效果,不知道是不是版本问题,因为我看到别人使用的是80版本的,我的依旧是57版本的


一、配置环境变量

1:问题

问题:‘mysql’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。

在这里插入图片描述

2. 配置流程

电脑右键--> 高级设置(没有就搜索) --> 系统属性--> 高级 -- > 环境变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后点击确定就可以了,注意:有两个确定要点。

3. 验证

mysql -v 

不提示===‘mysql’ 不是内部或外部命令,也不是可运行的程序
或批处理文件=== 就可以了,为什么不是显示版本号呢?因为还有问题

二、报错( Access denied for use ‘ODBC‘@‘localhost‘ (using password: NO))

1.问题

ERROR 1045 (28000): Access denied for user ‘ODBC‘@‘localhost‘ (using password: NO)

2. 解释

错误翻译:错误1045(28000):用户’root’@'localhost’的访问被拒绝(使用密码:否)

原因:也就是没输入密码,导入不能登录mysql,这个是my.ini文件的配置问题

3.解决

(1)打开控制面板

windows电脑右键 --> 属性 --> 点击【控制面板】

(2)打开管理工具

在这里插入图片描述

(3)双击打开服务

在这里插入图片描述

(4)双击打开你安装的mysql(我的是57版,有的可能是80)

在这里插入图片描述

(5)获取两个路径

左边是mysqld.exe 应用程序安装路径 ,右边是my.ini配置文件的位置。

① mysqld.exe 应用程序启动时,首先会去找 my.ini文件。
② my.ini 文件会告诉 mysqld 需要在启动时做什么准备工作。所以需要先配置my.ini文件

在这里插入图片描述

(6)记事本方式打开my.ini 文件后编辑

在这里插入图片描述

(7)调整位置

通过第② 步可以看到,mysqld.exe和my.ini文件不在第二个文件就不在一个路径下了,所以找不到文件路径,因此需要调整位置
将右边路径下修改后的my.ini文件放到左边mysqld.exe的上级目录(bin同级)中
在这里插入图片描述

(8)验证

使用mysql命令,如果如下进入到对应的mysql命令行中

mysql

在这里插入图片描述

如果你和上面一样,恭喜你解决了,后面不用看了,如果没用,且报下面的错,请继续看。

三、报错( Access denied for use ‘ODBC‘@‘localhost‘ (using password: yes))

1.问题

ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

在这里插入图片描述

2.解释

其实可以看出,和第二步,只是最后面的NO改为了YES,但实际意义差了很多。
NO表示不输入密码,没用找到对应的配置
YES表示密码不正确

3.解决

(1)停止mysql的运行

windows电脑右键 --> 属性 --> 点击【控制面板】 --> 管理工具 --> 双击打开服务 --> 找到对应的mysql57(根据你的版本来)-- > 右键点击停止
就不放截图了,和第二步的步骤一样

在这里插入图片描述

(2)找到可执行文件(选ProgramData,而不是Program Files)的my.ini

第二步中可以找到对应的详细步骤
在这里插入图片描述

(3)给my.ini添加命令

skip-grant-tables

在这里插入图片描述

(4)window + r 打开程序输入cmd

在这里插入图片描述

(5)启动mysql的运行

安装这里的第(1)步执行,将点击“停止”改为“启动"即可

(6)输入以下命令

--更改密码(新密码的括号是需要的,还有最后的;表示结束也需要)
update mysql.user set authentication_string=password('新密码') where user='root';
--刷新权限
flush privileges;
--退出
quit;

在这里插入图片描述


总结

1:验证

(1)走完上述,随便打开一个命令行页面,输入mysql后有一个>mysql可以输入sql语句就是对的。

在这里插入图片描述

(2)打开mysql的命令行终端直接输入密码(root),也就是你重置密码的密码

在这里插入图片描述

2:参考文章

ERROR 1045 (28000): Access denied for user ‘ODBC‘@‘localhost‘ (using password: NO)

mysql5.7忘记密码重置密码保姆级教程

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐