【数据库】忘记mysql本地密码
作者:mmseoamin日期:2023-12-21

目录

      • 说明
      • 操作步骤
      • 操作失败解决
        • 1.在以上操作步骤的第四步,输入mysql,报错
          • 第一种报错
            • 解决办法如下
            • 第二种报错
              • 解决办法如下
              • 2.从上面操作第二步后重新操作
                • 步骤如下
                  • 报错
                  • 解决办法如下
                  • 参考链接

                    说明

                    太久没使用本地mysql数据库,忘记了密码。

                    操作步骤

                    1.进入安装MySQL的bin目录下,按下shift + 鼠标右键,会出现“在此处打开 PowerShell 窗口”的字样,然后点击,打开PowerShell

                    【数据库】忘记mysql本地密码,在这里插入图片描述,第1张

                    2.输入net stop mysql(或net stop mysql80),停止MySQL服务(或者到服务中手动停止。位置:控制面板\所有控制面板项\Windows 工具\服务)

                    【数据库】忘记mysql本地密码,在这里插入图片描述,第2张

                    【数据库】忘记mysql本地密码,在这里插入图片描述,第3张

                    3.输入mysqld --skip-grant-tables 回车

                    4.重新打开一个窗口,进入bin目录,输入mysql,然后再输入use mysql

                    5.修改数据库连接密码,命令如下任选,密码按照自己想法设置

                    update user set password=password("123456") where user="root";

                    ALTER USER 'root'@'localhost' IDENTIFIED BY '123';

                    6.重新加载一下权限,将设置了密码的用户root的权限信息从内存中写入数据库。输入命令flush privileges;,英文分号“;”不可省略。如果不写“;”,回车之后输入“\g”,效果一样。

                    7.退出 mysql ,输入quit。

                    8.另开一个cmd窗口,执行mysqladmin -u root -p shutdown,然后提示输入密码:输入自己设置的密码。

                    9.开启数据库服务,输入net start mysql

                    10.验证是否设置成功。另开cmd,进入到mysql的bin目录下,输入mysql –u root –p,回车之后提示输入密码,然后显示如下。连接成功。

                    【数据库】忘记mysql本地密码,在这里插入图片描述,第4张

                    操作失败解决

                    1.在以上操作步骤的第四步,输入mysql,报错

                    第一种报错

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

                    当你不指定登录用户时,Windows 在连接 MySQL 数据库的时候,就会使用这个 ODBC 用户去连接 MySQL 数据库,不管你的 MySQL 数据库中是否存在这个 ODBC 用户,Windows系统,都会使用这个 ODBC 用户去 尝试连 MySQL 数据库

                    所以,如果你不想使用 mysql -uroot -proot 这种加了两个参数(-u、 -p)方式登录 MySQL 数据库,就是想,直接 敲命令 mysql 就能进入 MySQL 控制台的话,你就需要告诉,MySQL,你不想使用 Windows 系统为你选的 ODBC 用户去连 MySQL,你想使用一个你熟悉的用户登录 MySQL,并且,在登录的时候,不想输入过多的 参数,只用一个 mysql 命令 ,就可以登录到 MySQL 控制台中。

                    简单一句话,你要解决,就是等于可以不输入密码就进入mysql。

                    你可以忽略这个问题,因为我没有管。

                    解决办法如下
                    • 1.打开my.ini,可以全局搜索,默认位置:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini(安装路径下)
                    • 2.如果没有权限修改,将其复制到桌面,或其内容复制到新的文本中进行修改。
                    • 3.将user=root``password=root加入到my.ini中,保存后放回初始位置。

                      【数据库】忘记mysql本地密码,在这里插入图片描述,第5张

                    • 4.进入服务,找到mysql服务,点击选择属性(如果你是mysql80,就找mysql80)

                      【数据库】忘记mysql本地密码,在这里插入图片描述,第6张

                    • 5.在属性中看到mysql的可执行文件的路径,将my.ini放在这个bin之前的目录下(mysqld.exe 应用程序的父级目录 bin 的上一级目录中)

                      【数据库】忘记mysql本地密码,在这里插入图片描述,第7张

                    • 6.此时再输入mysql,进入mysql,再查询一下,select user();。当前用户是否正确

                      【数据库】忘记mysql本地密码,在这里插入图片描述,第8张

                      第二种报错

                      MySQL: 无法将“mysql”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写...

                      这个需要你重新配置mysql的全局变量

                      解决办法如下
                      • 1.到控制面板\所有控制面板项\系统,打开高级系统设置

                        【数据库】忘记mysql本地密码,在这里插入图片描述,第9张

                      • 2.选择高级-环境变量

                        【数据库】忘记mysql本地密码,在这里插入图片描述,第10张

                      • 3.找到path,选中并点击编辑

                        【数据库】忘记mysql本地密码,在这里插入图片描述,第11张

                      • 4.输入mysql的安装目录带bin的地址,点击确定,依次关闭即可。

                        【数据库】忘记mysql本地密码,在这里插入图片描述,第12张

                        2.从上面操作第二步后重新操作

                        步骤如下

                        1.跳过MySQL验证(无密码登录),其中my.ini文件地址根据自己情况修改

                        mysqld --defaults-file="C:ProgramData\MySQL\MySQL Server 8.0\my.ini" --console --skip-grant-tables --shared-memory

                        报错
                        2023-07-07T06:38:28.000247Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
                        2023-07-07T06:38:28.000544Z 0 [System] [MY-013169] [Server] mysql安装目录\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.28) initializing of server in progress as process 20396
                        2023-07-07T06:38:28.003075Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
                        2023-07-07T06:38:28.003087Z 0 [ERROR] [MY-013236] [Server] The designated data directory mysql安装目录\MySQL Server 8.0\Data\ is unusable. You can remove all files that the server added to it.
                        2023-07-07T06:38:28.016844Z 0 [ERROR] [MY-010119] [Server] Aborting
                        2023-07-07T06:38:28.018009Z 0 [System] [MY-010910] [Server] mysql安装目录\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.28)  MySQL Community Server - GPL.
                        
                        解决办法如下
                        • 1.将my.ini中datadir的目录下的文件全部清空,删除(暴力方式)
                        • 2.在bin目录下,打开cmd,输入mysqld --initialize --console
                        • 3.将‘root@localhost:’后的保存下来,这就是你的新密码。你可以修改密码了

                          2.继续操作中的第四步往后的操作。修改密码即可。

                          参考链接

                          1.MySQL忘记密码,重置root密码(纯步骤):https://blog.csdn.net/qq_42307920/article/details/127049565

                          2.终极解决 mysql8.0 ERROR 1045 (28000): Access denied for user ‘ODBC‘@‘localhost‘ (using password: NO):https://blog.csdn.net/m0_47505062/article/details/122342121

                          3.initializing of server in progress as process 4656:https://blog.csdn.net/Rbaggio92/article/details/106013390

                          4.忘记本地MySQL数据库密码的解决方案https://www.cnblogs.com/liusx0303/p/10093050.html

                          5.解决:ERROR 1045 (28000): Access denied for user ‘ODBC‘@‘localhost‘ (using password: NO):https://blog.csdn.net/qq_41550190/article/details/117961327