说明
操作步骤
1.进入安装MySQL的bin目录下,按下shift + 鼠标右键,会出现“在此处打开 PowerShell 窗口”的字样,然后点击,打开PowerShell
2.输入*** stop mysql
(或*** stop mysql80
),停止MySQL服务(或者到服务中手动停止。位置:控制面板\所有控制面板项\Windows 工具\服务)
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.开启数据库服务,输入*** start mysql
10.验证是否设置成功。另开cmd,进入到mysql的bin目录下,输入mysql –u root –p
,回车之后提示输入密码,然后显示如下。连接成功。
操作失败解决
1.在以上操作步骤的第四步,输入mysql,报错
第一种报错
ERROR 1045 (28000): A***ess 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中,保存后放回初始位置。
- 4.进入服务,找到mysql服务,点击选择属性(如果你是mysql80,就找mysql80)
- 5.在属性中看到mysql的可执行文件的路径,将my.ini放在这个bin之前的目录下(mysqld.exe 应用程序的父级目录 bin 的上一级目录中)
- 6.此时再输入
mysql
,进入mysql,再查询一下,select user();
。当前用户是否正确
第二种报错
MySQL: 无法将“mysql”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写...
这个需要你重新配置mysql的全局变量
解决办法如下
- 1.到控制面板\所有控制面板项\系统,打开高级系统设置
- 2.选择高级-环境变量
- 3.找到path,选中并点击编辑
- 4.输入mysql的安装目录带bin的地址,点击确定,依次关闭即可。
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 ***plete (mysqld 8.0.28) MySQL ***munity Server - GPL.
解决办法如下
- 1.将my.ini中datadir的目录下的文件全部清空,删除(暴力方式)
- 2.在bin目录下,打开cmd,输入
mysqld --initialize --console
- 3.将‘root@localhost:’后的保存下来,这就是你的新密码。你可以修改密码了
2.继续操作中的第四步往后的操作。修改密码即可。
参考链接
1.MySQL忘记密码,重置root密码(纯步骤):https://blog.csdn.***/qq_42307920/article/details/127049565
2.终极解决 mysql8.0 ERROR 1045 (28000): A***ess denied for user ‘ODBC‘@‘localhost‘ (using password: NO):https://blog.csdn.***/m0_47505062/article/details/122342121
3.initializing of server in progress as process 4656:https://blog.csdn.***/Rbaggio92/article/details/106013390
4.忘记本地MySQL数据库密码的解决方案https://www.***blogs.***/liusx0303/p/10093050.html
5.解决:ERROR 1045 (28000): A***ess denied for user ‘ODBC‘@‘localhost‘ (using password: NO):https://blog.csdn.***/qq_41550190/article/details/117961327